仕事メモとか

仕事中に調べた情報とか知ったことをメモしています。
unixコマンド, vim, oracle, putty, postgresql, bash, EXCEL, python, SQL全般 など。
最近は tableau, movabletype とかも触ったりしています。
雑な読書感想とかはこちら

カテゴリ: vim


viエディタで複数行のインデントをいい感じに入れる方法

多分他にもやり方はいろいろあると思いますが、忘れないためにメモ。

1.複数行矩形選択
 Ctrl+Vでヴィジュアルモード
 下に矩形選択して複数行をマーク

2.Shift+Iで挿入モード
 入れたいスペースを入力

3.ESCで挿入モードを抜ける
 複数行のインデントが完了


どうもviエディタのビジュアルモードは慣れないというかすぐにピンとこないという。


grepで前後の行も表示すると、調査が楽

grep で色を付けているんですが、調査するときに前後の行も見たい、ということがあります。
そう言う時は、-C オプションで前後の表示指定が出来ます。

例)
grep --color xxx -C 1

aaa
bbb
ccc
xxx
sss



ccc
xxx ※色つき
sss

調査が捗ります。


また、表示内容をvimで見るという手法もできます。


ls | vi -

vi - で、標準出力の内容をvimで表示することが出来ます。
ガッツリ見たいときはvimで見たほうが検索などで来て便利。

vimのオートインデントのスペース数が全然合わない

vim使ってる時に、改行をするといい感じにインデントを入れてくれる設定をしています。

:set autoindent


ただ、こいつが勝手に8スペース入れます。
TABの代わりにスペースを入れている設定をしているのですが、

:set expandtab

タブのスペース化を4から2にしたら、前よりも違和感が凄くなり、
流石にちゃんと設定をしようと思って探しました。

どっかに、=8とか設定あるのかな、と思って探していたのですが、
逆に無指定だと8スペースになることが判明。
インデントのときの設定も強制する必要がありました。

:set shiftwidth=2

tabstopと同じにすることで問題が解消されました。

vimで行操作して作業を簡略化

ちょっと込み入ったアクションが打てる方法。

:g/{検索}/{アクション}

例えば、ERRORという文字がある行だけを抜き出したい場合

:g!/ERROR/d

最後のdがdeleteの意味。

後の方に色々なコマンドを入れることができます。
例えば、2行ずつにまとめて一旦くっつけるなど。

aaaa,
bbbb,
cccc,
dddd,

上記のを矩形選択したうえで、

:g/./join 2

とすると

aaaa,bbbb,
cccc,dddd,

となる。便利。


参考:
http://kaworu.jpn.org/vim/vim%E3%81%AE%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E6%A4%9C%E7%B4%A2%E3%81%A8%E7%BD%AE%E6%8F%9B%E3%81%A7%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%B9%E3%81%8D%E3%81%93%E3%81%A8#:g.2C_:global_.E3.81.A8.E3.81.AF

vimで今フォーカスしている数字を足したり引いたり

Ctrl+a 足す
Ctrl+x 引く

ちょっと数字を弄りたいときに、実はこれだけで数字を足せることを知った。
これ凄い便利だわ・・・

↑このページのトップヘ