viのメモ書き。


コマンドキーワードがうるおぼえの場合、:help キーワードが便利


:%d ファイル内を全てからにする。
yy:1行コピー
3yy:3行コピー
p:貼り付け

u:undo

Ctrl+r:redo

ggVG:すべて選択



○移動系

refs:vimの使い方 - 忘備録(チラシの裏

l カーソルを右に一文字移動
h カーソルを左に一文字移動
j カーソルを下に一文字移動
k カーソルを上に一文字移動
gg カーソルをファイルの先頭に移動
0 カーソルを行頭に移動

^ カーソルを行の先頭へ

:$ カーソルをファイルの終了行へ

$ カーソルを行末に移動
H カーソルを画面一番上の行に移動
M カーソルを画面中央の行に移動
L カーソルを画面一番下の行に移動
+ 次行の先頭へ移動
- 前行の先頭へ移動
% 対応する括弧へ移動
W 次の単語へ移動
w 次の単語へ移動
e 次の単語(末尾)へ移動
b 前の単語へ移動
B 前の単語へ移動
Ctrl+f 1画面分下に移動
Ctrl+b 1画面分上に移動
Ctrl+d 半画面分下に移動
Ctrl+u 半画面分上に移動

J 行末の改行を削除


?G:?行目にジャンプ

gg:先頭行にジャンプ

G:最終行にジャンプ

:??? : ???行目にジャンプ

: set number : 行番号を表示

%:カッコ"(",")"カーソルたっている場合、対応するカッコにジャンプする。

f(文字):文字までジャンプ。続けて";"で次の文字までジャンプする。(同一行限定?)

*:カーソルがあたっている単語を下方向に検索する。

#:カーソルがあたっている単語を上方向に検索する。


○行末から次の行の先頭、行頭から前の行の行末へ

初期設定だとh,lでこの移動ができなかった。「:set whichwrap=b,s,h,l,<,>,[,],~」を実行したらできるようになった。面倒なので、$HOME/.vimrcに書いておく。

refs:vimrcのwhichwrapおぷしょんについて

 


○検索
n:次の検索

N:前の検索


デフォで大文字小文字を区別している。区別したくない場合、検索文字の後に¥cをつける。もしくは:set icを実行。元に戻すときは:set noic。icはignorecase


refs:linuxでviで大文字小文字を区別しないで・・・


○すべて削除

1G d G


%HOME/.viminfo:viの利用履歴が出力されるファイル。

vimtutorコマンドでvimのマニュアルが見れる。


コマンドモードにしてファイル名を開く。

:e ファイル名


置換。

:s/abc/ABC:abcをABCに一つ置換する。(対象行はカーソルがあたっている行のみ)

:s/abc/ABC/g:対象行のabcは全てABCに置換する。

:sa


v:ビジュアルモードになる。ビジュアルモードである範囲を選択してyでコピーでpで貼り付け。

Ctrl+V:矩形選択する。

Shift;V:行選択する。

(合わせ技:ggで先頭に移動し、Shift+Vで行選択し、Gで最終行まで移動すると全選択になる。

vi,vimビジュアルモー


 ○.vimrc

$HOME/.vimrcファイルを作成し、そこにvimの初期設定を設定できる。

refs:おすすめのvim設定


○レコーディング機能

csvファイルの項目の入れ替えとか

refs:recording機能で単純作業を自動化する


○タブ

:tabnew tabname:新規タブを開く

:gt : タブの移動

:[number]gt

:tabclose[number]:タブを閉じる

:tabonly:可憐とタブ以外を閉じる


refs:vimのタブページ機能を使ってみたのでメモ

 


○コマンド、シェル

vim実行中に:!コマンドで一時的にシェルを実行できる。例えば「:! pwd」。また、「:sh」でシェルを呼び出し、vimの編集に戻りたくなったらctrl + Zを押せばいい。これはvimをバックグラウンドの状態にしてシェルを一時的に呼び出している。

「:r!date」:dateコマンドの結果をファイルに書き込む

「:w !ls -l」:ls -lの結果をvim上で出力する


refs:vim外部コマンドの実行


○ヤンクとクリックボード

ヤンクした物をクリッポボードへ。refsを参考にやった

refs:[mac]vimでyankでクリップボードにコピーする

[追記]

macのvimで上のrefsを実行したら、今度はdelキーが効かない症状が発生した。暫くxで削除・・・ちなみに環境は下の通り。
tmp $ vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 7 2014 20:02:30)
$ vim --version | grep clipboard
+clipboard +iconv +path_extra -toolbar
+eval +mouse_dec +startuptime -xterm_clipboard
この問題は、~/.vimrcに下の一行を追記したら直った
set backspace=indent,eol,start
refs: cygwin vimでdel,bsが効かないとき


○その他

q: コマンド履歴を見る。で、実行したいコマンドにフォーカスをあててCtrl + Cでコマンド実行できる

q?:なんかよくわからん一覧

refs:履歴を表示、実行する


vi・vim講座

viエディタ上に行番号表示

viコマンド(vimコマンド)一覧(検索・置換)

viキー操作メモ

・vimエディタの使い方