vim

gm ハック

vim

gm にカウントを受け付けるようにした。 1gm で gm と同じく現在行の画面中央の桁へ移動。 [count]gm で現在行の画面右端から1/(2^count)桁左へ移動。 --- ../src.orig/normal.c 2006-04-29 22:11:18.001000000 +0900 +++ normal.c 2006-08-25 11:32:49.4843…

vi コマンドの使い方 スレ

vim

http://salad.2ch.net/software/kako/989/989162369.html

gd と 1gd の違い

vim

1gd, 1gD はほとんど gd, gD と同じだが、マッチした場所を含むブロックが、検索開始位置よりも上で閉じているときは次を探す。 void moge() { int hoge; // gD するとここ } int hoge; // 1gD するとここ void moge() { { int hoge; // gd するとここ } int…

全部小文字ユーザ定義コマンドハック

vim

ねんがんの全小文字ユーザ定義コマンドをてにいれたぞ! ユーザ定義コマンドの名前を小文字で始められないのは、組み込みコマンドとの混乱を避けるため。 以下はユーザ定義コマンドを呼び出すとき、コマンド名の検索をケースインセンシティブにするハック。…

vim.org にアップされているスクリプトの一覧を取得する

vim

wget "http://www.vim.org/scripts/script_search_results.php?&show_me=1625&result_ptr=0" -O tmp.htmlvim.org にアップされている tips をコメントつきで取得する: http://www.vim.org/scripts/script.php?script_id=1619

コマンドライン補完で1周したときビープを鳴らすハック

vim

けれどいつも :set vb vb_t= してるので意味がなかったり。 補完前のオリジナルの語だけ別な色で表示するようにした方がいいかな。 コマンドライン補完にはけっこう不満があるのでいじりがいがありそう。 bash などと同じようなファイル名展開を行うライブラ…

コマンドライン補完で1周したときビープを鳴らすハック

vim

けれどいつも :set vb vb_t= してるので意味がなかったり。 補完前のオリジナルの語だけ別な色で表示するようにした方がいいかな。 コマンドライン補完にはけっこう不満があるのでいじりがいがありそう。 bash などと同じようなファイル名展開を行うライブラ…

Vim old releases

vim

古いバージョンのvimが置いてある。 http://ftp.vim.org/pub/vim/old/ 'gdefault'ってよっぽど初期のころに導入されたんだろうと思っていたけど、2.0と3.0の間に出てきている。g を省略できるようにするのはいいけど、オンにしているとき g をつけるとトグル…

bufdo, windo, s の実行後にカーソル位置をもとに戻すハック

vim

bufdo, windo の実行後にカーソル位置を元に戻す --- ../src.orig/ex_cmds2.c Mon Apr 17 19:19:07 2006 +++ ex_cmds2.c Mon Aug 21 21:35:59 2006 @@ -2214,6 +2222,10 @@ #endif char_u *p_shm_save; + win_T* curwin_save = curwin; + buf_T* curbuf_save…

rangesource ハック

vim

以前から、バッファ中のテキストの一部を vimscript として実行する関数が欲しかったので、実装してみようと思った。 要は、範囲指定して:so か :exe をしたいのだが、どちらがよりふさわしいだろうか?おそらく :exe なのだろうけど、スクリプト以外では :s…

hilight ,; ハック

vim

fFtT でカーソル移動するとき、目的地より前に同じ文字があってそこで止まってしまうと、一瞬カーソル位置がわからなくなってしまうのをなんとかしたいと思った。 以下は ,; を使ったときに検索している文字をハイライトするハック。 既知の問題点は 特殊文…

Viper Enhanced

viper にテキストオブジェクトやビジュアルモードを追加するためのパッチ。 lisp で vim を再構築したいと考える人は少ないらしい。私はその一人です。 http://www.geocities.jp/emacsjjjj/viper/

Cygwin 上の vim で :browse

vim

OpenFile.vbs 「ファイルを開くダイアログ」を出して、選択したファイル名を WScript.Echo。 (cscript で実行すると標準出力へ出力) Dim ComDlg, WshShell Set ComDlg = WScript.CreateObject("MSComDlg.CommonDialog") Set WshShell = WScript.CreateObje…

関数の個数

vim

vim のソース中に関数が何個あるか数えてみたら2593個だった。count-functions-in-tags (exuberant ctags の tags を利用) #!/usr/local/bin/ruby # usage: $0 < tags count = 0 while gets a = $_.split('"') a = a[-1].split("\t") #puts a[1] count += 1 …

^ でカウント指定できるようにするハック。

vim

昨日のこれ: M でカウント指定できるようにするハック http://d.hatena.ne.jp/parasporospa/20060815/1155651810 Emacs の viper-mode ではまったく同じ機能がすでに実装されていたらしい。 以下は ^ でカウント指定できるようにするハック。 viper-mode で…

v_I, v_A ハック

vim

v, V でビジュアルモードを開始したとき、I, A で選択行の行頭・行末にテキストを追加するようにするハック。 --- ../src.orig/ops.c 2006-06-23 04:30:39.001000000 +0900 +++ ops.c 2006-08-16 18:13:49.921875000 +0900 @@ -2357,6 +2357,25 @@ curwin->w…

M でカウント指定できるようにするハック

vim

H, L はカウント指定できるのに、M だけできないのはかわいそうなので直した。 画面中央行からcount-1だけ下の行へ移動。 --- ../src.orig/normal.c Sat Apr 29 22:11:18 2006 +++ normal.c Tue Aug 15 23:14:05 2006 @@ -5634,6 +5634,7 @@ } if (n > 0 && …

vi ftp archive

vim

ftp://ftp.cc.monash.edu.au/pub/vi/ かなり面白いものがある。 macros/commentC C のコメントの中で改行したとき、次行の先頭に'*'をつける。vim の :set formatoptions+=r に相当。 map! <cr> <c-v><esc>Yp:s/[^\* ]/ /g<esc>A <esc>:s/ *$//g<esc>A macros/markring マークリング、いわ</esc></esc></esc></esc></c-v></cr>…

配列操作の比較表:VBScript, VimScript

http://0xcc.net/blog/archives/000043.html 作ってみた。 Ruby(Array) VBScript(Array) VimScript(list) a = [1, 2, 3] a = Array(1, 2, 3) let a = [1,2,3] a.length UBound(a) - LBound(a) + 1 len(a) a.empty? UBound(a) = -1 empty(a) a.push(x) ReDim …

stevie

vim

vim tips: vim は stevie を基に作られた。 stevie は ST Editor for VI Enthusiasts の略。 steve's editor の略だと書いてあるものを見たことがあるが、それは間違いのようだ。 stevie の初出は1987年。vi clone としても最初期のものらしい。 ソースコー…

fFtT で現在行を飛び出て探しに行くハック

vim

http://www.k3.dion.ne.jp/~jod/viusage.html f (character-in-line-forward-search) 現在行の指定文字まで移動。Emacs の viper-modeでは現在段落内の指定文字まで移動らしい。確かに、現在行だけに制限する理由は特に考えられない。 現在行だけに制限する…

文の先頭の文字を大文字にする

vim

comp.editor.vi-archive より。 文の先頭の文字を大文字にする :set nowrapscan magic remap noignorecase :map K nw~Kq /[.!?*] [ ]*[a-z] 1GK :unmap K 上の方法では行頭から始まる文だけは対応できないので、以下を行う。 :g/[.!?])*[SPACETAB]*$//[A-Za-…

注釈つき vi リファレンス

vim

http://www.k3.dion.ne.jp/~jod/viusage.html

Cygwin 版 vim で Windows のクリップボードを使うハック

vim

vim でヤンクすると同じテキストが Windows のクリップボードに入り、 "*p すると Windows クリップボードのテキストがプットされるハック。 ヤンクはともかく、プットは全ての場合に対応していないし、実際には レジスタ* を使っていないのでかなり問題があ…

ヤンクしたテキストもレジスタ1〜9に入れるハック

vim

オリジナルの vi にはレジスタ 0 は存在せず、ヤンクしたテキストは 無名レジスタにのみ保存されるらしい。 小削除用レジスタ "- もないらしい。 どうもレジスタの挙動は複雑だと思っていたら、そんな理由があったのか。 一応、以下のパッチですべてのヤンク…

viper

(global-set-key "\C-p" 'dabbrev-expand) (global-set-key "\C-n" 'dabbrev-expand-forward)

Quickfix ウィンドウを nobuflisted にするハック

vim

--- ../src.orig/quickfix.c Wed May 3 16:47:42 2006 +++ quickfix.c Sun Jul 30 17:33:15 2006 @@ -2274,6 +2274,7 @@ OPT_LOCAL); set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL); set_option_value((char_u *)"diff", 0L, (char_u …

Cygwin + ck + vim でファンクションキーを使えるようにする

vim

ck 上でファンクションキーを押すと、rxvt のコントロールコードを送る模様。 なので .vimrc に以下を追加。 " for Cygwin + ck set nottybuiltin set t_k1=^[[11~ set t_k2=^[[12~ set t_k3=^[[13~ set t_k4=^[[14~ set t_k5=^[[15~ set t_k6=^[[16~ set t_…

ck+vim で256色表示

vim

Cygwin + ck termcap に xterm-256color が入っていないので、 xterm に入っている termcap を /etc/termcap に追加する。:set termcap=xterm-256color でOK

abbreviation を展開したとき、最後に入力した文字を挿入しないようにするハック

vim

/* insert the last typed char */ のブロックをコメントアウトしただけ。 --- ../src.orig/getchar.c Thu May 4 02:29:21 2006 +++ getchar.c Sun Jul 23 05:43:17 2006 @@ -4276,31 +4276,31 @@ /* special key code, split up */ if (c != Ctrl_RSB) { - …