[Vim] FAQ

全体

全ての設定をOFFにして起動したい

vim -u NONE -N
  • -uは別の設定を読み込むオプションなのでNONEにすると.vimrcを読み込まない
  • -Nはviとの互換性..compatibleをオフにする

ターミナルをVimとシームレスに操作したい

Vimから:terminalを呼び出すことで以下のメリットがある。

  • <C-w>NでターミナルがVimモードになる
  • <C-w>""でVimとターミナルのyankが共有できる

git bash vimでHOMEENDÏHÏFになる

以下の設定が悪い方向に競合していたので、削除したらなおった。

" MetaキーにAltを割り当てる
let c = 'a'
while c <= 'z'
    execute "set <M-" . c . ">=\e" . c
    execute "imap \e" . c . " <M-" . c . ">"
    execute "set <M-S-" . c . ">=\e" . toupper(c)
    execute "imap \e" . toupper(c) . " <M-" . c . ">"
    let c = nr2char(1+char2nr(c))
endw

オペレーション

ファイル名を貼り付けたい

"%p

クリップボードをペーストするとインデントがおかしくなる

:a!してからペースト

MakefileでTABを入力できない

set expandtab.vimrcで設定している場合なら、set noet で無効にできる。
今だけ入力したいなら<C-v><TAB>の方がよいかも。

エラーメッセージが1行しか表示されない

:messageで表される

検索や置換を正規表現で指定したい

very magicを利用します。\vを頭ににつけるだけ。

コマンドの実行結果を挿入したい

  • :r!で次の行に挿入
  • !!で現在行を置換

別のファイルの内容を挿入したい

  • :rで次の行に指定ファイルを挿入

複数ファイルに同じ操作をしたい

複数ファイルの一括置換

確認不要の場合はcを外す

:args *
:argdo %s/before/after/gc | update

複数ファイルの一括操作

args *
:argdo exec "norm iTANAHASHI" | update

見た目

Vimに色が付かない

set termguicolorsを外してみる

表示した不可視文字を一時的に非表示にする

set nolist

Markdown

Markdownファイルの編集が重い

plasticboy/vim-markdownを使っている場合でFoldexpr_markdownが重い場合は以下の設定を追加することで無効化できます。

let g:vim_markdown_folding_disabled = 1

Exコマンド

ExコマンドをNORMALモードで編集したい

Exコマンドラインで<C-f>を押すとコマンド履歴画面で編集できます。