基本的なことは &link(こちら,http://www.str.ce.akita-u.ac.jp/~gotou/linux/vine.html#vi)参照。

viで編集しながらコンパイルなどをする

  • :!コマンドでunixコマンドが使えるので
  • コンパイルしたいときは
  •  :!gfortran -o hoge hoge.f90とか
  • latexの編集は
  • pxdvi hoge&でひらいておいて
  • vi hogeで編集画面にいって
  • :!platex hoge.tex とかするとやりながらコンパイルできる。

複数行に同じ文字列を挿入

  • ヴィジュアルモードで挿入したい箇所を箱選択しておき
  • shft+i で挿入モード
  • 挿入する文字列を入力
  • ESCを押すと選択箇所に同じ文字列が挿入される。

マクロの使用例

例えば、時刻データとその時刻の変位データ数行とが、 交互に並んでいるデータファイルから、 時刻だけの行を抜き出したい場合などは、vimのマクロが有用である。

例えば、ccxの動的解析の出力ファイルなど、 以下のように並んでいるデータファイルから、 displacements と書かれた行だけを他のファイルに抜き出して 保存したいとしよう。

  • ( displacements (vx,vy,vz) for set N1 and time 0.1000E-01
12663  3.0118E-06 -3.4520E-17  1.0695E-08
12664  3.0118E-06  3.4680E-17 -1.0695E-08
displacements (vx,vy,vz) for set N1 and time  0.2000E-01
12663  6.0106E-06 -6.8904E-17  2.1343E-08
12664  6.0106E-06  6.9224E-17 -2.1343E-08
displacements (vx,vy,vz) for set N1 and time  0.3000E-01
12663  8.9875E-06 -1.0302E-16  3.1914E-08
12664  8.9875E-06  1.0349E-16 -3.1914E-08
displacements (vx,vy,vz) for set N1 and time  0.4000E-01
12663  1.1927E-05 -1.3672E-16  4.2351E-08
12664  1.1927E-05  1.3735E-16 -4.2351E-08
  • )

こういう作業をするときは、元ファイルを壊してしまうと困るので、 作業用ファイルにコピーしてから作業するのが安全。 という訳で、上記のファイルをsagyou.datにコピーしたとしよう。

  • viでsagyou.datを開き、
    • ( :sp disp.dat
    • )
  • などとして、displacementsの行を抜き出すファイルをもう一つ開いておく。 ファイル間の移動はCntl+wの後にjkキーで。
  • sagyou.datの方にカーソルを持ってきて、qaと打つと下に「記録中」と書かれて 「a」というキーにキーボードマクロの記録が始まる。
  • ggで先頭に移動し、
  • /disp でdisplacementsの行を検索
  • ddでその行を切り取り
  • Cntl+wの後にjまたはkでdisp.datに移動し、pでコピー行を貼り付け
  • Cntl+wの後にjまたはkでsagyou.datに戻る
  • ここでqを押してマクロの記録を終了
  • ggでsagyou.datの先頭に行き、sagyou.datの行数が500行なら、500@a と打つ。
  • そうすると、sagyou.datの500行に対して上記と同じ操作を行なってくれるので、 見るまに、displacementsの行がdisp.datの方にコピーされていく。

後は適宜、保存するなりすればよい。 節点12663の行だけをファイルにコピーしたければ、同様に操作すればよい。 複数のマクロを定義したければ、qa, qb, qc, みたいにいくらでも定義できる。

特定の文字列がある行を抜き出したい

例えば、aaaというファイルのdisplacementsと書いてある行だけを抜き出したいんだったら、 わざわざ、上のようなviのマクロ機能を使わなくたって、

  • ( cat aaa | grep displacements >bbb
  • )

エラー

E575: viminfo:

viを起動するたびに「E575: viminfo:」と出てくる。エンターを押せばそのまま続行できるが、\home\kiso\.viminfoを消せばエラーメッセージが消える。 消したあとも今のところ不具合なし。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-01-19 (日) 17:15:52