Home > Vim Hacks > Hack #118: ホームディレクトリをラクに入力する

Hack #118: ホームディレクトリをラクに入力する

問題

Vimのコマンドラインでホームディレクトリを入力する機会は比較的多いものの、~/という文字列を見ただけで小指に疲労が走ってくるのは、ほとんどのVimユーザに共通するのではないでしょうか。 もしも入力しやすいキー、例えばバックスラッシュなどで一発で~/が入力できれば、どんなに素晴らしいことでしょうか。

解決

以下のコードを~/.vimrcに記述することで、コマンドラインモードでバックスラッシュで~/が入力できる上、~/が来て欲しくなさそうなところではそのままバックスラッシュが入力されます。

function! HomedirOrBackslash()
  if getcmdtype() == ':' && (getcmdline() =~# '^e ' || getcmdline() =~? '^r\?!' || getcmdline() =~? '^cd ')
    return '~/'
  else
    return '\'
  endif
endfunction
cnoremap <expr> <Bslash> HomedirOrBackslash()

この設定を有効にしたVimで:e \と打鍵すると、ただちに:e ~/に展開されます。 また、:s/\と打鍵した場合は、:s/\とそのままになります。(:s/~/のように展開されません)

発展

本Hackはcho45さんの.zshrcへのハックへのアナロジーで考案されました。 残念ながら現在cho45さんの最新版の.zshrcにはそのコードは存在していないようですが、 少し古いところに残っています。 著者の手元の.zshrcから引用すると、以下のようなコードでした。

expand-to-home-or-insert () {
  if [ "$LBUFFER" = "" -o "$LBUFFER[-1]" = " " ]; then
    LBUFFER+="~/"
  else
    zle self-insert
  fi
}
zle -N expand-to-home-or-insert
bindkey "\\"  expand-to-home-or-insert
ujihisa

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://vim-users.jp/2010/01/hack118/trackback/
Listed below are links to weblogs that reference
Hack #118: ホームディレクトリをラクに入力する from Vim-users.jp

Home > Vim Hacks > Hack #118: ホームディレクトリをラクに入力する

Search
Feeds
Links
  • 公式
  • 勉強会
  • 情報
  • コミュニティ
  • プラグイン
  • vimrc
  • Meta
    Etc
    Creative Commons License
    This blog is licensed under a Creative Commons License.

    Return to page top