2011/02/16

vim noplugins

半年以上前だしメモを残さなかったので素晴らしく参考になったsiteが正確にはどこだったか分からなくなってしまった。

確かなことは...
kaoriya 様の日本語ヘルプドキュメントと
github.com に公開されていた達人の方々の .vimrc と
Google にて vim noplugins や vim shebang
とか検索した結果のいくつかのサイト

などを参考にさせていただきました。

" --------------------

/usr/bin/vim (OS X に最初から入ってるvim) を起動する際、自動的にロードされてしまう標準プラグインを "ロードしない" ようにした上で実現したいこと...大きくわけて2つ。

mission 1 :)

% vim aaa.rb で新しいファイルを作ると

#!/usr/bin/ruby
# coding: utf-8

この2行が予め記入され、入力するとインデントかかり、class とか def とかそういった文字に色がつく。

インデントかかるっていうのは例えば...

def a [return-key] if [return-key] end

とキーボードを打つと自動的に

  4 def a
  5   if
  6   end

になったり

begin [return-key] a [return-key] rescue

とキーボードをたたくと自動的に

  5 begin
  6   a
  7 rescue

こうなるっ。

mission 2 :)

% vim aaa.txt で開いたテキストファイルを編集する際
# を入力すると以降の文字列(改行まで)は青色になり
-- で始まる行はシアン色?に。
http や https で始まる行もシアンに。
行中にある <http://...> や <https://...> もシアンになるっ。


% cat test.vimrc

set nocompatible
set number
set backspace=indent,eol,start

" -------------------- Status
set laststatus=2
set statusline=%n\:%y%F\ \|%{(&fenc!=''?&fenc:&enc).'\|'.&ff.'\|'}%m%r%=<%-10(%3l,%02c%03V%)>

" -------------------- HighLight
highlight StatusLine term=NONE cterm=NONE ctermfg=gray ctermbg=darkcyan
highlight IncSearch ctermfg=gray ctermbg=cyan
highlight Search ctermfg=yellow ctermbg=darkcyan

highlight LineNr ctermfg=lightcyan ctermbg=NONE
highlight Visual term=NONE cterm=NONE ctermfg=NONE ctermbg=gray
highlight ModeMsg ctermfg=lightcyan ctermbg=NONE

" -------------------- tab
set shiftwidth=2
set tabstop=2
set expandtab
set ts=2 sw=2 expandtab

" -------------------- Plugins
" :help noloadplugins
set noloadplugins

" :help :filetype-off, :filetype-overview
filetype off

" :help :filetype-plugin-off
filetype plugin off

" :help :filetype-indent-on
filetype indent on

" /usr/share/vim/vim72/syntax/syntax.vim
syntax enable
" syntax on

" debag
" set verbose=9
autocmd! filetypedetect
" autocmd! BufWrite

if has("autocmd")
  "echo 'Hello!01'
  augroup MyVim
      autocmd!
      autocmd BufRead,BufNewFile *.txt           setlocal filetype=txt
      autocmd BufRead,BufNewFile *.rb            setlocal filetype=ruby
      autocmd BufRead,BufNewFile *.vimrc         setlocal filetype=vim
      "autocmd BufRead,BufNewFile *.vim           setlocal filetype=vim
      "autocmd BufRead,BufNewFile *.py            setlocal filetype=python
      "autocmd BufRead,BufNewFile *.sh            setlocal filetype=sh
      "autocmd BufRead,BufNewFile *.html          setlocal filetype=html
      autocmd FileType txt  syn match Comment /\#.*/
  augroup content
    autocmd!
    autocmd BufNewFile *.rb
          \ 0put = '#!/usr/bin/ruby'    |
          \ 1put = '# coding: utf-8'   |
    autocmd FileType txt
          \ :highlight MyGroup ctermfg=darkcyan ctermbg=NONE  |
          \ :match MyGroup /^\--.*\|<http.*>\|^http.*/        |
"    autocmd BufNewFile *.py
"        \ 0put = '#!/usr/bin/python'       |
"        \ 1put = '#-*- coding: utf-8 -*-'  |
"        \ $put = '' |
"        \ $put = '' |
  augroup END
endif

" -------------------- Last
" http://github.com/kana/config/
set secure  " must be written at the last.  see :help 'secure'.


テストファイルを指定して vim 起動

vim -i "NONE" -u test.vimrc aaa.rb


vim のコマンド結果

:filetype
# =>
filetype detection:ON  plugin:OFF  indent:ON

:autocmd
# =>
--- Auto-Commands ---
MyVim  BufNewFile
    *.txt     setlocal filetype=txt
    *.rb      setlocal filetype=ruby
    *.vimrc   setlocal filetype=vim
content  BufNewFile
    *.rb      0put = '#!/usr/bin/ruby'      | 1put = '# coding\: utf-8'     |
MyVim  BufRead
    *.txt     setlocal filetype=txt
    *.rb      setlocal filetype=ruby
    *.vimrc   setlocal filetype=vim
filetypeindent  FileType
    *         call s:LoadIndent()
syntaxset  FileType
    *         exe "set syntax=" . expand("<amatch>")
MyVim  FileType
    txt       syn match Comment /\#.*/
content  FileType
    txt       :highlight MyGroup ctermfg=darkcyan ctermbg=NONE  | :match MyGroup /^\--.*\|<http.*>\|^http.*/        |
Syntax
    *         call s:SynSet()
    cpp       if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax)^I|| (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax)   | runtime! syntax/doxygen
.vim | endif
    c         if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax)^I|| (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax)   | runtime! syntax/doxygen
.vim | endif
    idl       if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax)^I|| (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax)   | runtime! syntax/doxygen
.vim | endif
Press ENTER or type command to continue



# 現在の vim バージョン(OS X 10.6.6)
% vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Aug 10 2010 22:09:22)
...

[memo]
python のインデントはこのままだとうまくいかない。

[2011-02-19]
'# coding\: utf-8'
になってた。
'# coding: utf-8'
に修正

0 件のコメント: