これは単純な(?!)vimscriptを使用しているだけなので、ファイルに入れることができます。ファイルvimrcに対して機能するようになりましたが、(明らかに).c非常に簡単に変更できます.cpp。内部のifステートメントに「エラー処理」さえあります(それはおそらく無意味です)しかし、誰かがそれを必要とするなら、ねえ、そこにあります!それがないと、はるかに短くなります (:e %<.hたとえば、 をそのままにしておきます)。
function! HeaderToggle() " bang for overwrite when saving vimrc
let file_path = expand("%")
let file_name = expand("%<")
let extension = split(file_path, '\.')[-1] " '\.' is how you really split on dot
let err_msg = "There is no file "
if extension == "c"
let next_file = join([file_name, ".h"], "")
if filereadable(next_file)
:e %<.h
else
echo join([err_msg, next_file], "")
endif
elseif extension == "h"
let next_file = join([file_name, ".c"], "")
if filereadable(next_file)
:e %<.c
else
echo join([err_msg, next_file], "")
endif
endif
endfunction
vimrc次に、次の行に沿って何かをさらに追加します。
let mapleader = "," " <Leader>
nnoremap <Leader>h :call HeaderToggle()<CR>
通常モードのときはいつでも、カンマ,(これが私たちの<Leader>ボタンです) を押すhと、上記の関数が呼び出され、ファイルを切り替えます。多田!