Vim Tips

Last Update:2013/09/13

set expandtabをしてる時にTABを入力するには

  1. iでinsertモードになる
  2. C-v
  3. Tabキーを押す

複数ファイルの文字列を一括置換する

pythonファイル中のhogeをfooに変換。

:args *.py
:argdo %shoge/bar/g | update

キー入力を節約する

例えばreSTファイルを書く時、項を示すために同じ記号を何回も入力する必要がある。イコールやハイフンを複数入れたり。

そんな時に単語の略記として入れておくと少し楽になる。

:ab 10eq ==========

もしくはファイルタイプを指定してvimrcに書いておいてもいいかもしれない。

filetype plugin on
autocmd FileType rst ab 10eq ==========

このようにすればOK。あとはvimの入力モードの状態で10eqと打ってreturn、またはスペースを入れると自動的に展開される。

ただ実際のところ、Macなどで作業するときにはClipMenuなどのスニペットを扱えるアプリケーションに入れておいた方がvimだけでなくいろいろなテキスト編集で使えるので、実用性は今ひとつかなと思う。vimに限った場合でも、補完を使えばそんなに困らないし。

折り畳み設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
set foldmethod=syntax
set foldlevelstart=1
let javaScript_fold=1 " JavaScript
let perl_fold=1 " Perl
let php_folding=1 " PHP
let r_syntax_folding=1 " R
let ruby_fold=1 " Ruby
let sh_fold_enabled=1 " sh
let vimsyn_folding='af' " Vim script
let xml_sysntax_folding=1 " XML

Pythonはデフォルトでは折り畳み設定ができないようだ。 インデントベースで折り畳みをしたいときは次の設定を行う。

1
2
set foldmethod=indent
set foldnestmax=2

他にも折り畳み設定の種類は以下のようなものがある

manual manually define folds
indent more indent means a higher fold level
expr specify an expression to define folds
syntax folds defined by syntax highlighting
diff folds for uncahnged text
marker folds defined by markers in the text