12
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VimAdvent Calendar 2022

Day 15

command line windowをちゃんと使いたい

Last updated at Posted at 2022-12-15

vimを閉じたときにq:とタイプして「何か開いちゃったあわあわ」となったことはありませんか?
Vimを使い始めたころはよく間違って開いてしまうことが多かったです。

image.png

基本

基本的にできることは、ウィンドウ上でコマンドと検索の履歴閲覧と編集、再実行です。
再度実行したいコマンド(検索)にカーソルを乗せてエンターを押すことで再実行することができます。

開き方

冒頭でも書きましたが、q:で開くことができますが、
他にも以下で開くことができます。

/の検索履歴 ?の検索履歴 コマンド入力中に開く
/q ?q Ctrl-f

閉じ方

名前の通り、Vimのwindowで開いています。
なのでノーマルモードで:qを使うことで閉じれます。
(インサートモードの際はノーマルモードに切り替えてから)

できること

基本的にはwindowで開いているだけなので、
Vimの編集で使える機能は使うことができます。
(これをあまり分かっていなかった僕は上下に移動してエンターを押すだけでした)

検索

window上で検索ができます。
以前のコマンドを実行したいときに便利です。
そこまで使う頻度は無いですが、
Vimの正規表現も使って検索ができるのでまれに輝きます。

編集

オペレータを使って編集や置換もできます。
コマンドライン上で編集するよりも慣れているはずですし、便利なので
一度実行したコマンドを編集して再実行するときはCommand-line windowを使うようになりました。

おまけ

冒頭のように間違えて開くのが嫌な僕は、以下のようにキーバインドを消しています。

.vimrc
vim.keymap.set("n", "q:", "<Nop>", { noremap = true, silent = true })
vim.keymap.set("n", "q/", "<Nop>", { noremap = true, silent = true })
vim.keymap.set("n", "q?", "<Nop>", { noremap = true, silent = true })

加えて、:/を使ったときに常にコマンドラインウィンドウを開いています。

コマンドラインでVimのような操作ができないことに辛い思いをしている方は、以下の設定をおすすめしたいです。

.vimrc
vim.keymap.set("n", ":", "q:i", { noremap = true, silent = true })
vim.keymap.set("n", "q/", "q/i", { noremap = true, silent = true })

おわりに

いかがでしたでしょうか。
慣れてくると使い勝手が良くなってくると思います。
読んでいただきありがとうございます。

12
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?