Help us understand the problem. What is going on with this article?

Vim歴2年の自分の成長止まりを憂う

More than 3 years have passed since last update.

vim使い始めて2年くらい経つけど、結構クセついてきてしまいたまに焦りがきます。

例えば、diw -> i とやり慣れてる人が、 ciwに移行するのって意識して努力しないと変わらない。

以下は、僕自身が習得しなければならない、より便利な機能をリスト化してみました。結構前にまとめたので、もう改善済みのも結構ある。

とりあえず、最近vim使えてきたな〜って人は、t/f,T/Fの高速移動やText Objectを覚えると、さらに1.1倍くらい楽しくなります。

Keys

key action
Ctrl + j,k,h,l インサートモード中に移動
ca" "ごと"内を削除
ge 前の単語の末尾に移動
S 現在の行を消してインサートモード
s カーソル下の一文字を消してインサートモード
C カーソルより右を消してインサートモード
ZZ :wqと同じ
dG 現在行以下をすべて削除
Ctrl + p インサートモード時に前方単語補完
Ctrl + n インサートモード時に後方単語補完
:r! + CMD コマンド実行結果を貼り付け
gJ スペースを含まず行結合
5J 現在行以下5行を一括行結合
]m 次のメソッドの始めに移動
]M 次のメソッドの終わりに移動
[m 前のメソッドの始めに移動
]M 前のメソッドの終わりに移動
{ 前の空行へ移動
} 次の空行へ移動
% 対応する括弧や予約語に移動
* カーソル下の単語を後方検索
# カーソル下の単語を前方検索
g* カーソル下の単語を後方部分検索
g# カーソル下の単語を前方部分検索
+ 下の行頭に移動
- 上の行頭に移動
g; 直前の変更箇所に戻る
g, 直前の変更箇所に進む
:noh 検索結果のハイライトを解除
W,B,E,gE
q + 文字 レコード開始(qで終了)
@ + 文字 レコード再生
q: コマンド履歴を表示
q/, q? 検索履歴を表示
gg=G 全行インデント(V+G+=と動きは同じ)
R 上書きモード
Ctrl + [ コマンドモードに戻る(=esc)
Ctrl + z 一時停止(vimで戻る)
yy5p 行をコピーし、下に5行分ペースト
gv 直前の選択を再選択
ma マークaをつける
`a マークaに移動
'a マークaのある行の先頭に移動
y`a 現在のカーソル位置からマークaまでをコピー
v`a 現在のカーソル位置からマークaまでを選択
:marks マーク一覧を表示
"ayy レジスタaにコピー(aをAにすると現在保持しているテキストの末尾に追加される)
"ap レジスタaをペースト
:reg レジスタ一覧を表示
:reg a b レジスタa,bを表示
@: 直前に実行したコマンドを実行
:g/^$/d 空行削除
u 小文字に変換
U 大文字に変換
~ 小文字は大文字に、大文字は小文字に変換
gQ Exモード(連続でコマンドを使用できる)
:e ファイルを開く
:r ファイルを読み込み現在編集中のファイルにペースト
gt 次のタブに切替
gT 前のタブに切替

Text Object

dcと組み合わせて使用する。

key action
iw 単語(以降iの部分はaでも代用可能)
iW 単語(空白含む)
is
it タグ
i] 括弧("",'',(),<>,{})なども対応可能)

以上。
他におすすめあったら是非教えて欲しいです!

以下は、おまけ。
vimの標準ファイルツリー。

netrw.vim

Vimの便利なファイルブラウザ。

Keys

key action
:h netrw 使い方をみる
:Explore(Ex)[!] [dir] カレントファイルのディレクトリを開く。:e .でも同じ。
:Hexplore[!] [dir] 水平分割 & Explore
:Nexplore[!] [dir] 垂直分割 & Explore
:Pexplore[!] [dir] 垂直分割 & Explore
:Rexplore Explorer に戻る
:Sexplore[!] [dir] ウィンドウ分割 & Explore
:Texplore[!] [dir] タブ & Explore
:Vexplore[!] [dir] 垂直分割 & Explore
i 表示方法を切り替える (thin, long, wide, tree)
s ソート方法を変える: name, time, file size
r ソート順を逆にする
a 隠しファイルの表示を切り替える
gh ドットファイルの表示/非表示を切り替える
p ファイルをプレビューする
qf ファイル情報を表示する
- 一つ上のディレクトリに移動する
u 最近訪れたディレクトリに移動する(undo的な)
U 次に訪れたディレクトリに移動する(redo的な)
t カーソル位置のファイル/ディレクトリを新しいタブで開く
o カーソル位置のファイル/ディレクトリを新しいウィンドウで開く。水平分割。
v カーソル位置のファイル/ディレクトリを新しいウィンドウで開く。垂直分割。
gt 次のタブに切替
gT 前のタブに切替
P 直前に使用していたウィンドウで開く
d ディレクトリを作成する
D ファイル/ディレクトリ(複数可)を削除する(マークしたファイルがある場合には、マークしたファイルを削除)
R ファイル/ディレクトリ(複数可)の名前を変える
mf ファイルをマーク/アンマークする
md マークしたファイルの差分を表示する (3ファイルまで)
mz マークしたファイルを圧縮/伸長する
mr シェル形式正規表現 (regexp) でファイルをマークする
mt 表示中のディレクトリをターゲットディレクトリにする
mc マークしたファイルをターゲットディレクトリにコピー
mm マークしたファイルをターゲットディレクトリに移動
mv マークしたファイルに対して任意のVimコマンドを実行
mx マークしたファイルに対して任意のシェルコマンドを実行
mX マークしたファイルに対して任意のシェルコマンドを一括実行
mu すべてのマークを解除する
mb カレントディレクトリをブックマークする
qb ブックマークと履歴の一覧を表示する
gb 前のブックマークされたディレクトリに移動
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away