Windows版GvimでPowerShellを呼び出す.

2013/07/23未分類import

Windows版GvimでPowerShellを呼び出す

設定ファイル(“vimrc等”)に下記を追加すると,
vim上で「:!プログラム名」とした際に起動するシェルがコマンドプロンプト(cmd.exe)から
Windows PowerShellに変更できる.
set shell=powershell.exe
PowerShellはコマンドプロンプトよりも高機能でパワフル*1なので,運用の幅が広がる.

*1 : だけどコマンド体系がわかりづらく,日本語のまともな資料もあまりないので非常に使いづらい.

呼び出したPowerShell上で別プロセスとしてプログラムを実行する

TeXのコンパイルは結構な時間が掛かるため,
VimでTeXを編集しているときに,普通にVimからPowerShellを呼び出し,
その上でプログラム(実行用バッチファイル)を実行しコンパイルすると,
数十秒から最悪数分間も処理で編集作業が出来なくなってしまう.

PowerShellでは“Start-Process”というコマンドで,プログラムを実行中のシェルとは別のプロセスで実行できる.
これを利用すればこのロスをなくせる.Vimのコマンドモード上で以下を実行すれば良い.
:!Start-Process -FilePath .\lualatex-set.bat 
“lualatex-set.bat”の中身は以下の通りである.
“jlreq-text.*”はバッチファイルと同じフォルダにある編集中のTeX関連ファイルたちである.
このように本文のほかに索引や参考文献も組み込み,
各カウンタの数字が正しく出力されるまで複数回コンパイルすると,相応の時間が掛かってしまう.
lualatex.exe jlreq-text.tex
mendex.exe -s jlreq-text.ist jlreq-text.idx
pbibtex.exe jlreq-text
lualatex.exe jlreq-text.tex
lualatex.exe jlreq-text.tex
さらに発展したものとして,実行される別プロセスのウィンドウをフォーカスしない(非選択状態)で実行するオプションは以下.
:!Start-Process  {.\lualatex-set.bat} -WindowStyle Minimized

vimで行頭に一括で記号を挿入・削除

2012/11/27未分類import
調べたらありました.
コメントアウトの設定・解除や,タブの挿入・削除に便利だと思う.

記号を挿入

  1. 挿入したい行の先頭で"Ctrl + v"(ビジュアル 矩形モード)
  2. jやk(あるいは方向キーの↑↓)で範囲選択
  3. 大文字のIで("Shift + I"で)挿入モードへ
  4. 挿入したい文字列を入れる.
  5. "Esc"(あるいはCtrl + [でもよい)を押すと選択したすべての行に文字列が挿入される.

記号を削除

  1. 削除したい行の先頭で"Ctrl + v"(ビジュアル 矩形モード)
  2. jやk(あるいは方向キーの↑↓)で範囲選択
  3. d
これによって行頭の1文字が削除されます.

矩形モードのため,行頭でない場所で上記それぞれの1を実施するとそこに文字列が挿入されます.
応用範囲は広いでしょう.矩形モードの詳細は検索するとたくさん見つかりますのでそちらをご参照ください.

vimでdiffを使う

2012/10/29未分類import
編集ファイルを開いた上で,コマンドモードで次のコマンドを入力する."filename"が比較したいファイルの名前だ.
:vertical diffsplit filename
そうすると,色付けされた差分が縦(左右)分割で表示される.
"vertical"オプションをつけないと横(上下)で分割されて表示される.
おそらくverticalをつけた方が見やすいだろう(特に16:9のディスプレイを使っている場合は).

vimで折畳みを使う

2012/03/06未分類import
以前から誤操作をしたときに「折畳みがありません」というエラーが出たことがあったので,
存在は知っていたが使ったことがなかった.試しに使ってみたら,非常に便利だった.
:set foldmethod=marker
という入力をすることで,マーカーを使用した折畳みが利用できるようになる.
初期設定ではマーカーは三重の中括弧である.
{{{
折畳みたい部分
}}}
というように記述すると,折畳みを利用できる.
TeXでは三重の中括弧は特にコメントアウトする必要はないが念のため,
%{{{
折畳みたい部分
%}}}
としておくとわかりやすい.上の「畳み込みたい部分」にカーソルを合わせコマンドモードで,
za
と入力することで,折畳みを閉じたり開いたりできる.
すべて折畳みたいときは,
zm
すべて開きたいときは
zr
と入力する.
TeXで注意しなければならないのは,数式環境を折畳みときだ.
数式中に意図せず三重の中括弧が含まれていることが結構あるので,その場合はそこで折畳みが終わってしまう.
適当に半角スペースをいれて折畳みに影響がないようにしておくと良い.

もっと手軽に折畳みをするには,
ビジュアルモードで「折畳みたい部分」を選択し,その状態で
zf
と入力する.こうすると勝手にコメントアウトつきの三重括弧が挿入され,折畳みが行われる.
折畳みたい部分の始まり%{{{
折畳みたい部分
折畳みたい部分の終わり%}}}
のように挿入してくれる.

vimでsyntaxを追加する

2012/03/02未分類import
私が使っているvimでは,Visual BasicまたはVisual Basic .NET(拡張子vb)のsyntaxが有効になっていなかった.
これを有効にするにはgvimrcに次の行を追加する.
au BufNewFile,BufRead *.vb			setf vb
この行のうち,"*.vb"が対応する拡張子の指定箇所,"setf vb"が読み込むsyntaxファイルの指定(ファイル名はvb.vim)である.
ただし,これはVisual Basic用のsyntaxである.
今回編集したいのはvb.net以降のソースコードなので,syntaxファイルをvbnet.vim: Syntax highlighting for VB.NET から取得し,
vbnet.vimを"vimのインストール先/runtime/syntax"以下に置いてから,次のようにgvimrcの先程の行を編集する.
au BufNewFile,BufRead *.vb			setf vbnet
これで,Visual Basic .NET系のソースコードのsyntaxを一応表示できるようになった.