LoginSignup
38
38

More than 5 years have passed since last update.

vimの備忘録

Last updated at Posted at 2014-05-21

自分向けの備忘録です。
vim操作を随時追加します。
(はてなブログからこちらに移動しました。)

テキストオブジェクトの選択

keys 内容
ip 段落
ap 段落+前後どちらかの空白
iw 単語
aw 単語+前後どちらかの空白
is

keys 内容
vipd ビジュアルモード 段落を削除する.
vipy ビジュアルモード 段落をヤンク(コピー)する.
dip 段落を削除する.
yip 段落をヤンク(コピー)する.
gUaw 単語を大文字化する
guaw 単語を小文字化する

ビジュアルモード

keys 内容
gv 前回の選択範囲を再選択

ファイル内の移動

keys 内容
' ' 直前のジャンプ位置に戻る
' . 直前に変更された位置
g; 直前に変更された位置(履歴を戻る)
g, 直前に変更された位置(履歴を進む)
ctrl+o 戻る
ctrl+i 進む
* カーソル位置の単語を下に検索
# カーソル位置の単語を上に検索

カーソル移動

keys 内容
ge 前の単語の末尾

挿入モード中のカーソル移動、文字削除

keys 内容
Ctrl+h 直前の1文字削除
Ctrl+w 直前の1単語削除
Ctrl+u 行頭まで削除
Ctrl+k 1文字進む

※ シェルでも利用可能な模様。

挿入

keys 内容
Shift+i 行頭(^)に移動して、挿入モード
Shift+a 行末($)に移動して、挿入モード
s カーソル位置の文字を削除して、挿入モード
C カーソル位置から行末までを削除して、挿入モード
S カーソル行を削除して、挿入モード

※Shift+iは行の先頭文字に移動する。(^i) 探しているのは0i...

ウィンドウ操作

keys 内容
Ctrl+w+x ウィンドウの表示内容の入れ替え。参考

コマンド

keys 内容
:e! 編集した内容を破棄して、開き直す
:pwd カレントディレクトリを表示する
:set ic 大文字小文字を無視する
:set noic 大文字小文字を区別する

args

参考 vimgrepとQuickfix知らないVimmerはちょっとこっち来い

argsで指定した値を##で呼び出せる.

:ar[gs] 長いパラメータ
:grep binding ## "##は長いパラメータを指す"
:grep pry ##

置換

:範囲s /検索パターン/置換文字列/オプション

範囲

keys 内容
(無指定) 当該行のみ対象
% ファイル全体を対象


sh
:s /error/result/ # 当該行の最初のerrorをresultに置換する
:%s /error/result/g # ファイル全体のerrorをresultに置換する

オプション

keys 内容
選択範囲の1つのみ置換する
g 選択範囲全体を置換する
c 置換時に確認をする。

残念ながらxcodeのvimプラグインでは、c オプションは非対応の模様。

ペースト

keys 内容
"0p コピーした内容をペーストする。
p カーソルの1つ後ろにペーストする
P カーソルの1つ前にペーストする
A (スペース) Ctrl+o0 カーソルの1つ後ろにスペースを1つ入れてペーストする
Ctrl+r {register} 挿入モードでペースト.
Ctrl+r Ctrl+p {register} 挿入モードでペースト

検索

keys 内容
/検索ワード\c 大文字小文字を区別して検索する

vimgrep

参考 vimgrepとQuickfix知らないVimmerはちょっとこっち来い

:vim {pattern} {file} ...
:vim binding app/**/*.rb

加算・減算

keys 内容
Ctrl+a カーソル上の数値に対して+1する
Ctrl+x カーソル上の数値に対して-1する
Ctrl+r = 挿入モードでCtrl+r = すると計算できる

001などの0プレフィックスがついていると8進数として解釈される。

以下を設定すると10進数として解釈される。
bash
set nrformats=

スクロール

keys 内容
Ctrl+u 上方向に半画面分
Ctrl+d 下方向に半画面分
Ctrl+b 上方向に1画面分
Ctrl+f 下方向に1画面分
Ctrl+e 上方向に1行分
Ctrl+y 下方向に1行分

バイナリモード

vim -b filename

surround.vim

keys 内容
ビジュアルモード中で:S' 選択範囲に'を付ける
ysiw' iw(単語)の前後に'を挿入する
ds' 前後の'を削除する
cs'" 'を"に置換する

tcomment_vim

Ctrl + -を2回押す

ソート

  • :sort 昇順ソート
  • :sort! 逆順ソート
  • :sort u (重複削除)
  • :sort n 最初に見つかる数字でソート
  • :sort /\a\a\a/ r 正規表現ソート

元ネタ:Qiita VIMで選択行をソートする

vimdiff

]c :        - next difference
[c :        - previous difference
do          - diff obtain
dp          - diff put
zo          - open folded text
zc          - close folded text
:diffupdate - re-scan the files for differences

元ネタ:https://gist.github.com/mattratleph/4026987

38
38
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
38
38