fudist

mylib


これは何?

雑多なvimスクリプトをまとめた物です。
  • 自動補完
  • カーソル位置のURIをブラウザで開く
  • 移動コマンドw,b,W,E,Bのカスタマイズ
vimfiles/plugin(unixは.vim/plugin)にコピーして使用して下さい。

自動補完

AutoCompletion.vim

挿入モードでキー入力を始めると、自動で補完を開始します。
"smartcaseを使用する
let MyAutoComplete_smartcase_Control = 1


"自動補完を始めるキー入力数
let MyAutoComplete_StartLength = 2

<目次へ>

カーソル位置のURIをブラウザで開く

OpenCursorline.vim

以下のようなURLリンクやファイル名が書かれていたら、ブラウザで開く事が出来ます。

http://...
ftp://...
~/....
C:\Temp\...
D:/Temp/...
:call OpenCursorline() を直接実行するか、適当なキーにマップして使用してください。

*.txt *.howm *.vimの場合はvimで開きます。
vim で開く拡張子は QFixHowm_OpenVimExtReg で指定できます。

"vimで開く拡張子の正規表現
let QFixHowm_OpenVimExtReg  = '\.txt$\|\.howm$\|\.vim$'


"リンクを開くブラウザの指定

if has('win32')
  "Internet explorer
  let QFixHowm_OpenURIcmd = '!start "C:/Program Files/Internet Explorer/iexplore.exe" %s'
  "firefox
  "let QFixHowm_OpenURIcmd  = '!start "C:/Program Files/Mozilla Firefox/firefox.exe" %s'
elseif has('unix')
  let QFixHowm_OpenURIcmd = "call system('firefox %s &')"
endif

特定の拡張子だけユーザ指定のプログラムで開く事も出来ます。
たとえば pdfファイルを外部プログラムを指定して開きたい場合は、 QFixHowm_Opencmd_pdf のように QFixHowm_Opencmd_ の後に拡張子を付加した環境オプションを設定します。

"拡張子別の起動プログラムをユーザ指定する
"pdfの指定

if
 has('win32')
  "Windowsは Acrobat Reader で開く
  let QFixHowm_Opencmd_pdf = '!start "C:/Program Files/Adobe/Reader 9.0/Reader/AcroRd32.exe" %s'
elseif has('unix')
  "Linux(Ubuntu)は evince で開く
  let QFixHowm_Opencmd_pdf = "call system('evince %s &')"
endif

<目次へ>

移動コマンドw,b,W,E,Bのカスタマイズ

MyMoveWord.vim

標準のW,B,Eは日本語文書では空白がないため、ほとんど意味がありません。
これを解消するためにW,B,Eのセパレータとして '。、' などを指定して、長い日本語の同一行内カーソル移動を楽にする事を目的としています。
一行の長い日本語では指定した日本語セパレータで止まることがわかると思います。

let g:MyMoveWord_JpSep = ' 。、.,/!?「」'
let MyMoveWord_enable_WBE = 1

eol で一旦停止させる事も出来ます。
let MyMoveWord_stop_eol = 1
wb もeol で一旦停止したい場合は以下を設定します。
let MyMoveWord_stop_eol = 1
let MyMoveWord_enable_wb = 1

オプション

MyMoveWord_stop_eol

 0
 行末のeolで停止しない。
 1 行末のeolで必ず停止。
 2 カーソルがeol直前の文字ならeolで非停止。

デフォルトは0です。
let MyMoveWord_stop_eol = 0
1と2は virtualedit=onemore が指定されていなければ違いはありません。
デフォルトでは virtualedit+=onemore が設定されます。
 MyMoveWord_onemore 
 0ならvirtualeditに'onemore'を設定しない。
 MyMoveWord_enable_wb 非0でw,bを有効にする。
 MyMoveWord_enable_WBE 非0でW,B,Eを有効にする。

注意事項

W,B,Eは私的な使用では日本語を扱うなら有用で、特に有害な副作用も無いように見えますが、使用には注意してください。
  • W,B,Eについてはmotionを実装する方法がわからないので、マップを使う非常にテキトーな方法で実装しています。
    具体的にはdWなどはモーションではなくdWというコマンド自体を定義しています。
    当然d2Wのような形式は使えないので、nmap d2W 2dW  の様なマップを定義しています。
    使えるのはd9Wまでで、c,d,yについてそれぞれ定義されています。
  • visualモードではvWWWWのようには使えますが、v2Wのような形式は扱えません。
  • visualモードのちらつき防止のためにlazyredrawが自動で設定されます。


<目次へ>