私は Neovim を使っています。Neovim の設定ファイルは init.vim
で設定します。
この init.vim
いつも行方不明になります(笑)。
というのも1年半ほど前から会社PCが Windows になりまして、 Windows の場合だと init.vim
の場所が Mac と異っていた & Neovim の設定が成熟してきていて、init.vim
を修正する機会が少なってきているため、毎回場所どこやねん状態になっていました。
いいかげん、対策しようと思い、対策しました。
"nvim init.vim へのパス" のコマンドを関数化する
最初に結論を書くと $PROFILE
に editvimrc
という名前の関数を登録し、PowerShell で editvimrc
を入力することで素早く init.vim
を開けるようにしました。
登録した editvimrc
関数は下記の通りです。
# init.vim を neovim で開く
# Set-Alias だと nvim に渡すパスを含めてエイリアスを設定できないため、関数を定義している
function editvimrc {
nvim $HOME\AppData\Local\nvim\init.vim
}
ここからは、上記にいたるまでの考えの流れをメモ書きしておきます。
読み込まれている init.vim の場所を特定する
まず、「init.vim
の場所はどこやねん」を明らかにします。ChatGPTに聞きました。
:echo $MYVIMRC
を vim で実行します。
すると、C:\Users\sasab\AppData\Local\nvim\init.vim
と表示されました。
なるほど。こりゃ自分で特定できる自信がありませんw。
init.vim をひらくためのエイリアスコマンドを作成する
ついでに、PowerShell で neovim init.vim へのパス
をエイリアス化するにはどうすれば良いか、ChatGPTに聞きました。
この回答によると、一度関数化して、さらにエイリアスを設定するみたいです。
なぜ、この手順が必要なのか分からなかったので試しに Set-Alias editvimrc nvim $HOME\AppData\Local\nvim\init.vim
を $PROFILE
に設定します。
実行すると、$PROFILE
読み込みの時点でエラーを吐きました。
どうやらパスの部分がエイリアスの引数として正しくないようです。
ググると下記のQiita記事を見つけました。
引数ごとエイリアスとして設定したい場合は、Set-Alias
を使わずに関数化するようです。
なるほど。となるとChatGPTが最初に関数化して、エイリアスを貼っていたのも納得できます。
関数化しよう
ChatGPTは関数化後にさらにエイリアスを貼っていましたが、自分がやりたいことは関数化の部分だけで満たされます。
悩んだのは関数名(実行するときのコマンド)です。
ChatGPTの画像をよく見ると分かるのですが、最初私は init.vim
ではなく vim.init
だと思っていました。今後も同様の勘違いをしてコマンド自体が忘れ去られる可能性があります。
なので、ChatGPT がおすすめしてくれたように、vim 時代から親しみのある vimrc
というワードをコマンド名にいれることにします。(editvimまでは覚えられそう&あとはtab補完でなんとかなるやろという考えもありました)
ということで記事の頭らへんで紹介した内容を $PROFILE
に書きます。
# init.vim を neovim で開く
# Set-Alias だと nvim に渡すパスを含めてエイリアスを設定できないため、関数を定義している
function editvimrc {
nvim $HOME\AppData\Local\nvim\init.vim
}
$PROFILE
に書き込み後、PowerShell を再起動し、 editvimrc
を実行すると見事に init.vim
が Neovim で開けることを確認できました。
最悪、コマンドを忘れても、この記事を書いたことは頭に残っているのでコマンドが行方不明になることもなさそうですw。アウトプットはこういう意味でも大切だなーと思いました。