ラベル vim の投稿を表示しています。 すべての投稿を表示
ラベル vim の投稿を表示しています。 すべての投稿を表示

2009年4月16日木曜日

vimで重複行を一括削除

vim7.2だと、下記コマンドで一発重複行を削除できる。
:sort u

旧操作(お勧めしない)
操作目的:下記ファイルに存在する重複行を削除
====================================
a
b
a
b
a
c
c
====================================

削除後の想定状態
====================================
a
b
c
====================================

手順
:%s/^\(.*\)\n\(\1\n\)*/\1/
where is the character sequence that represents a return in your file type.


下記の旧手順は複雑すぎるので、お勧めしません。
:%sort
->全ファイルをソートする
qa
:%s/^\(.*\)\n\1/\1/
q
100@a
->となり同士の同じ行を削除する動作を100回繰り返す

100で足りるかについて上記操作を完了した後
:%s/^\(.*\)\n\1/\1/
をもう一度実施し、ヒットしませんでした旨のエラーメッセージ
が出れば、完了、そうでなければもう一度適当回数で下記を実施する
100@a

2009年3月13日金曜日

vimのインストール先

vimを開いて、下記コマンドを実行すると、vimのインストール先が表示される。
:cd $VIMRUNTIME [enter]
ubuntu 8.10の場合、/usr/share/vim/vim71が表示される。

2009年2月10日火曜日

vim と cscopeの連携

下記ところにひとつのプロジェクトtargetProjectがあるとします。
/root/usr/loca/targetProject

1.タグファイルcscope.outを生成する
$cd /root/usr/loca/targetProject
$cscope -bR -P /root/usr/loca/targetProject
b:生成後、cscopeを起動しない
R:フォルダの配下のすべてのフォルダを再帰的に探す
P:cscope.outの絶対パス

2.vimの設定ファイルに下記内容を追加
:cs add /root/usr/loca/targetProject/cscope.out /root/usr/loca/targetProject

3.vimを起動し、:cs -helpを入力してください。
:cs f g XXX だと、XXXの定義値は検索してれる
:cs showだと現在つながっているタグデータベース一覧をリストアップする