Vimの覚書1

置換

コマンドモードで%s/置換前/置換後/

特定の範囲だけ置換したい。
コマンドモードで50,70s/置換前/置換後/
50行目から70行目の間でマッチした条件で置換となります。
コマンドモードの行末にgを入れることで、1行の中に複数回マッチしても全部置換されます。
逆説的に、gをつけないと一カ所しか置換されませんので注意して下さい。

カッコの確認。

カッコの閉じ忘れなんかでsyntaxエラー起きますね。起こられますね。

どこで閉じ忘れたか分からない。。

コマンドモードでカッコの上で%

対になってるカッコに飛んでくれます。

 

vim編集中のman確認

スクリプトを書いてる途中でオプションを調べたい。

編集中のウィンドウを閉じてman commandする?

いえ、編集中の画面でmanを開きたい文字列の上にカーソルを移動します。

移動したら、Shift+kを押します。

manが開きます。通常manを閉じるときと同様にqで閉じます。

一手間省けましたね。

文字化けしてる?
エンコードされてるファイルを調べます。
nkf -g hoge.txt
EUC-JP
euc-jpで保存されていた場合。

vi -c “:e ++enc=euc-jp” hoge.txt

エンコード変更したい
:set fenc=(euc-jp|shift-jis|utf-8) or :set fileencode=(euc-jp|shift-jis|utf-8)
ファイルフォーマット変更したい
:set ff=(dos|mac|unix) or :set fileformat=(dos|mac|unix)

 

行の削除を正規表現で行いたい。

:14,45g/^hoge¥d{0,3}.txt$/d

14行目から45行目までhoge¥d{0,3}から始まる行で拡張子が.txtの行を削除

条件なしで任意の行間を削除したい場合。
:14,45d

Tags:

Comments are closed.