u16suzuの blog

日々学んだことのメモブログです。

MacVimについて調べたことメモ

vimの復習です。

ctrl + [ escと同じくモード切替

ビジュアルモード

v ビジュアルモード切り替え
以下ビジュアルモードで

d 選択範囲削除
c 選択範囲削除し、かつインサートモードに入る
J 行末改行の削除
y 選択範囲コピー
v 範囲選択開始
V 行選択
Ctrl + v 矩形モードで範囲選択開始

ファイル操作

:e ファイルを開く
cmd + o ファイルを開く(ダイアログ表示)
:f ファイル名を変更して編集を続ける
ZZ 保存して終了
;w file_name file_name で保存
編集
di" ダブルクオートでくくられた中身を編集する。"hoge"の中身を編集できる。
da" ダブルクオートも含めて編集する。 "hoge"全部を編集できる。

コピーペースト

3yy カレント行から3行コピー
p カーソルの下にペースト
P カレント行にペースト

undo, redo

u :undo
:redo

検索,置換

/[文字列] 前方検索
?[文字列] 後方検索

n next target
N previous target

# next search current word
「*」 previous search current word

:% s/from/to/g 置換
:32,40 s/from/to/g 範囲指定置換

移動

w 次の語へ移動
b 前の語へ移動
gg ファイル先頭へ移動
G ファイル末尾へ移動
H 画面内の一番上の行へ移動
M 画面内の中心行へ移動
L 画面内の一番下の行に移動
:num num行目にジャンプ

指定行を、別の指定行にコピー(コレが一番やりたかった!正確には指定行にジャンプしている。)

  1. :num で開始行にジャンプ
  2. ms
  3. :num で終了行にジャンプ
  4. me
  5. :'s,'ey
  6. ペーストしたい行にジャンプして P

置換の場合は :'s,'es/from/to/g
削除の場合は :'s,'edx

ctrl + p 補完

9月21日追記

D カーソルから行末まで削除
O 前の行から入力
x delete key
X BackSpace key
I 行頭から入力
A 行末から入力

9月25日追記

cw 1単語変更
C 行末まで変更(=c$)
s 1文字消して変更開始(=xi)
r 1文字変更
j 次の行をくっつける
. 直前の変更を繰り返す
xp 2文字の入れ替え (emacsにおけるC-t)
~(チルダ) 大文字小文字入れ替え

vim ではなくMacのIME

ctrl + shift + j => japanese input
ctrl + shift + ; => english input

バッファ分割
:split 横に分割
:vsplit 縦に分割
:close 閉じる
ctrl + w
tab 操作
:tabe 新しいタブでファイルを開く
:tabc 今いるタブを閉じる
:tabo 今いるタブ以外を閉じる
:tabm 引数+1番目に現在のタブを移動
:tabfir[st] 先頭のタブに移動
:tabl[ls] 最後のタブに移動
:tabdo %s/foo/bar/gc 開いているタブ全体に置換
gt 右のタブに移動 3gt で左端から3番目のタブに移動
gT 左のタブに移動
f 指定文字まで移動(インクリメンタル)
F 指定文字まで移動(デクリメンタル)
; 次を検索
ct 指定文字まで削除
ggVG 全て選択