トップページunix
986コメント327KB

Vim6 Part10

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@w3mNGNG
Vim 6.xに関する話題、Part10です。
http://www.vim.org/

前スレ
http://pc5.2ch.net/test/read.cgi/unix/1086135625/

関連情報は>>2-7あたり。
0521516NGNG
>>520
あぁぁ..
すいません、excludeってあったのですね。JMばっか見てたから気づきませんでした..
grep --helpで出てくるじゃん..
お騒がせしました〜
0522名無しさん@お腹いっぱい。NGNG
aaaaaaaa
kasjdfkaj
0523名無しさん@お腹いっぱい。05/01/17 18:45:41
break;の抜けてるcase:を探す正規表現を考えてみたんだけど、どうだろう。
\v<case\_s+\k+:((.|\_s)(break)@!)*\w+:
0524名無しさん@お腹いっぱい。05/01/17 19:55:09,
>>523 switchの入れ子は?
052552305/01/17 21:00:40
うーん、お手上げ。
正規表現でネストまで考慮できるの?
これでハイライティングできたら便利かなーと思ったんだけど。
0526名無しさん@お腹いっぱい。05/01/18 15:16:54
Win XP で kaoriya の gvim 6.3.54 を使っています。

ツールボタンの「クリップボードから貼り付け」の上で、左右のマウスボタンを
同時に押すと、へこんだままになり、マウスの操作がおかしくなって、コマンド
ラインから(:q)しか終了できなくなります。

これが再現する人は他にもいますか?
0527名無しさん@お腹いっぱい。05/01/18 16:19:57
>>KoRoNさん
Vim 6.3.054 差分パッケージのパッチにconfigureの差分が抜け
落ちていて、migemoなどが使えなくなっています。
0528KoRoN@Vim%Chalice ◆8XALICEsdk 05/01/18 16:22:04
>>526
症状を確認しました。対症療法としてはフォーカスを移動させれば直るみたいです。
0529KoRoN@Vim%Chalice ◆8XALICEsdk 05/01/18 16:42:00
>>527
報告ありがとうございます。今difjパッケージを差し替え終えました。054_1がそれです。
0530名無しさん@お腹いっぱい。05/01/18 17:44:00
>>529
ありがとうございます。直ってました。
0531名無しさん@Vim%Chalice05/01/20 02:39:04
Linuxでvim6.3.52 + Kaoriya patchを使っていますが,
印刷に関しての質問です.
使っているのはpostscriptプリンタで,普段ターミナルからは
a2ps <file name> | lpr で問題無く印刷できています.

:he hardcopy を読む限り,vimはデフォルトで postscript に変換してから
lprに流す(正確にはprintexprの指定)という挙動のようなので,何も考えずに
:ha したところ,日本語部分が文字化けしてしまいました.

同じような経験の方はいらっしゃいませんか?
ちなみに,printexpr, printdeviceはデフォルトのままですが,
printfontにはちゃんと日本語フォントを割りあてているつもりです.
  set   printfont='mplus_j12r-iso,mplus_j12r-jisx,mplus_j12r'
0532mattn@Vim%Chalice05/01/20 11:10:39
>>531
vim6.3 ではマルチバイト印刷はサポートされていません。
現在マルチバイト印刷は Mike Williams 氏によってパッチが作成され、vim7 csv にマージされています。
私のほうで確認してみましたが、一応は動作しております。以下、出力サンプルです。
ttp://hp.vector.co.jp/authors/VA020411/Vim/sample.ps
0533名無しさん@お腹いっぱい。05/01/23 03:15:25
全角スペースを\sに含められないんかねぇ…
# そして\Sも全角スペースを含まないように

\s* こうやりたい所を [  \t]* ← 全角Sp+半角Sp+タブ と
わざわざ文字クラスを作るしかない…
0534KoRoN@Vim%Chalice ◆8XALICEsdk 05/01/23 15:43:18
>>533
> 全角スペースを\sに含められないんかねぇ…
Bramが納得できる形で提案できるならば可能でしょう。そのあたりがうまくできれば
「。」「、」なんかに対応した「文」という定義もできそうなので、結構キーポイン
トなんですよね。

直近で、ソースコードを弄らずに問題を解決するならば、[]でなんとかするしかない
ですね。
0535名無しさん@お腹いっぱい。05/01/23 16:47:10
>>523 正規表現はある程度自信があったんですが、ここへ来てしぼみました・・
↓の正規表現が解読できません。
ヘルプでも、\v< や \_s が出てきません。
また、文字の否定は ^ ですけど、グループの否定なんてできるのでしょうか?
↓では、breakがない意味らしいですが、↓のどれがbreakがないになるのでしょか

\v<case\_s+\k+:((.|\_s)(break)@!)*\w+:
0536名無しさん@お腹いっぱい。05/01/23 17:07:20
h \v
h \_s
h \@!
0537名無しさん@お腹いっぱい。05/01/23 17:11:32
h \v
h \_s
h \@!
0538名無しさん@お腹いっぱい。05/01/23 17:41:08
>>536 なぜか、ヘルプではすべてエントリーなしになってしまいます。
0539名無しさん@お腹いっぱい。05/01/23 17:59:20
>>538
ひょっとしてこうじゃないか?
:help \\v
0540名無しさん@お腹いっぱい。05/01/23 18:03:08
:h のコツは<tab>を使うこと
0541名無しさん@Vim%Chalice05/01/23 19:05:26
:hの時はCtrl-Dもつかうこと。
0542名無しさん@お腹いっぱい。05/01/23 19:07:19
そういえば
:h v_g?
でv_g?のヘルプに飛べない。v_g]に飛んでしまう。
:helpgrep v_g?
で飛べるが、なんか他に方法があるんだろうか?
0543名無しさん@お腹いっぱい。05/01/23 19:38:47
>>542
普通にv_g?で飛べるぞ
0544名無しさん@お腹いっぱい。05/01/23 21:55:48
検索実行後数秒でハイライトが消えてくれるといいなと思い

:au CursorHold * noh

としてみたのですが、待てど暮せど何も起きる様子がありません。

:au CursorHold * echo "HOGE"

とすると数秒後に HOGE と出るので、auそのものは動いているようなのですが。。。
何がいけないのでしょう?
0545名無しさん@お腹いっぱい。05/01/23 22:23:13
:au CursorHold * set nohl
でどう?
0546名無しさん@お腹いっぱい。05/01/23 22:25:02
autocmd CursorHold * set nohlsearch
こうか

0547名無しさん@お腹いっぱい。05/01/23 22:31:12
ありがとうございます。うまくいきました。

>>545見てから気付いたのですが、noh の方にちゃんと理由も書いてありました。
動作はするけど即座に元に戻っちゃってたんですね。

:noh[lsearch]
(snip)
This command doesn't work in an autocommand, because
the highlighting state is saved and restored when
executing autocommands |autocmd-searchpat|.
0548名無しさん@お腹いっぱい。05/01/23 22:34:16
あーでもこれだと恒久的にハイライトしなくなっちゃうのか。うーむ。
054954205/01/24 00:18:42
>>543
まさか俺だけ?orz
実害ないからいいけど
0550名無しさん@お腹いっぱい。05/01/24 00:32:03
あ、ホントだ飛べないや@vim 6.3 (パッチ未適用)
補完の候補には出るのに。
0551名無しさん@お腹いっぱい。05/01/24 08:29:15
>>548
俺はこうして、適当にバインドして使ってるヨ。便利。
function! ToggleHighlight()
if &hlsearch != ''
set nohlsearch
else
set hlsearch
endif
endfunction
0552名無しさん@お腹いっぱい。05/01/24 14:28:35
>>551
普通に
  set hlsearch!
で良いんじゃないかと。
0553名無しさん@お腹いっぱい。05/01/24 14:32:57
>>542
おれも飛べない。
Kaoriya Win版 6.3 (patched 1-30)
0554名無しさん@お腹いっぱい。05/01/24 20:15:49
im_customを有効にしていると--remoteが動作しません。

---
症状
    vim --servername test
    vim --servername test --remote testfile
としても、testfileがオープンされません。
代わりに(?)serverが(コマンドモードで)日本語入力モードになります。
" set imoptions=canna,serv:unix:0
とコメントアウトした場合は、正常にserver側でtestfileがオープンされます。
gvimでも同様です。

サーバが起動していないときに、
vim --remote testfile
としても、同様にtestfileは開かれずに、日本語入力モードになった状態で起動します。

mapが上手く動かないことがあるのと関係しているように思います。

(環境: Vim 6.3.45 + im_custom074 on FreeBSD)
---

今まで--remoteは使っていなかったのですが、TeX/Xdviの-src-special
を使おうとして気づきました。
0555名無しさん@お腹いっぱい。05/01/24 20:31:56
s/コマンドモード/ノーマルモード/ です。
0556名無しさん@お腹いっぱい。05/01/26 20:22:53
この一冊でvimヲタになれる!
って書籍はございますか?
0557名無しさん@お腹いっぱい。05/01/26 20:48:56
>>556
:h
0558a ◆Vim6/xykh2 05/01/26 22:21:05
かおり屋さんで、以下のリンクがあった方がよさげ。

http://www.gihyo.co.jp/books/syoseki.php/4-7741-2018-9
Vi IMprovedーVim 完全バイブル
Steve Oualline 著 / A5判 / 616ページ
ISBN4-7741-2018-9 / 2004年4月29日発売
定価3549円(本体3380円)

http://www.oreilly.co.jp/books/4873110831/
入門 vi 第6版
Linda Lamb, Arnold Robbins 著
福崎 俊博 訳
2002年05月 発行
256ページ
定価2,625円
ISBN4-87311-083-1
0559名無しさん@お腹いっぱい。05/01/27 00:57:24
買ってもなければ読んでもいないし関係してもいないものを
お薦めするわけにはいかないんじゃないかと思われ。
そうでないならいいんだけど。
0560名無しさん@お腹いっぱい。05/01/27 01:02:32
あふぃりえいとして稼いぢゃえ
0561名無しさん@お腹いっぱい。05/01/27 05:55:25
vim6.3.045を使っています。

よくある、数字に位取りのコンマを挿入する置換なのですが、

:s/\v\d@<=((\d\d\d)+>)@=/,/cg
before:1234567890
after :1,234,567,890

これを実行して「replace with , (y/n/a/q/l/^E/^Y)?」にyと答えても
,が表示されずに次のマッチに移動してしまいます。
一行を処理し終えるといきなり全ての,が表示されるのですが、
これはこういうものなのでしょうか。皆様のところでも再現しますでしょうか?
0562名無しさん@お腹いっぱい。05/01/27 05:57:01
さらに、上の例でyyqとタイプすると
,は一つも挿入されずに終わってしまいます。
0563名無しさん@お腹いっぱい。05/01/27 08:03:00
:s は行単位の処理だから妥当な仕様だと思うけど。
>さらに、上の例でyyqとタイプすると
求めてるのは"l"かな
:help s_c
0564名無しさん@お腹いっぱい。05/01/27 08:13:07
ああ、あと'\%c'のことを考えたら表示が逐次更新されちゃうと困ったことになるな。
0565名無しさん@お腹いっぱい。05/01/27 08:18:38
ありがとうございます。

> :s は行単位の処理だから妥当な仕様だと思うけど。
うーむ、でも :s@\d\d@&,@cg なら各yで処理されますよね?

それに :h s_c の記述を見る限りでは yyq では置換が実行されず
yl でなら実行される理由は説明されていないように思うのですが。。。
0566名無しさん@お腹いっぱい。05/01/27 08:25:13
ああ、,が入っちゃうと2番目以降の,が入らなくなるからこういう仕様なのか。
半分納得しました。
0567名無しさん@お腹いっぱい。05/01/27 10:33:28
>うーむ、でも :s@\d\d@&,@cg なら各yで処理されますよね?
ほんまやね。じゃーバックトラックが原因かな。すまんおれも詳しくはないんだ。
:h s_c については
'l' to substitute this match and then quit ("last") : quit=停止する
'q' to quit substituting : quit=取り止める
だと思いますが。
0568KoRoN@Vim%Chalice ◆8XALICEsdk 05/01/27 11:10:41
>>561
> よくある、数字に位取りのコンマを挿入する置換なのですが、
>
> :s/\v\d@<=((\d\d\d)+>)@=/,/cg

よくある置換ですけど、あまり推奨しないパターンですね。というのも、実際にマッ
チする文字列の幅が0だからです。マッチ結果が文字幅0になる正規表現はVimにとっ
て比較的新しい機能なので、従来の部分との組み合わせでなにかおかしな挙動をして
も「さもありなん」という感じなんです。

そこで代替案なんですが、詳説正規表現(P325)よりVim用にパターンを移植しました。
:%s/\(\d\{1,3}\)\%(\%(\d\d\d\)\+\d\@!\)\@=/\1,/gc
こうするとyの度に更新がかかります。
0569名無しさん@お腹いっぱい。05/01/27 16:08:44
ころんキモすぎw
さいたま〜さいたま〜
博論書いたか?ww
057056605/01/27 17:32:15
>>561の中の人
すまん、言ってる意味がわかった。おれが間違ってたわ。
057157005/01/27 17:33:28
570=567ね。すんません。
057256105/01/27 22:26:56
皆さん、ありがとうございます。
このあたりは一部普請中という感じのようですね。

>>568
> 詳説正規表現(P325)よりVim用にパターンを移植しました。
P325にはそれらしき記述がないのですが、ページは合っていますでしょうか?
手許の本は第2版です。
0573KoRoN@Vim%Chalice ◆8XALICEsdk 05/01/27 22:47:27
>>572 私のは初版です。7章「Perl」の8節「総仕上げ」にあたります。
0574名無しさん@お腹いっぱい。05/01/28 04:43:36
さいたまさいたまさいたま
0575名無しさん@お腹いっぱい。05/01/28 09:29:09
オレのも載ってるぞ。第2版。
「7.8.2 数字にコンマを加える」
図書館のだけど、、、
0576名無しさん@お腹いっぱい。05/01/28 11:29:25
koron no timpo

timpo wo poron
に最速で変える手は?
0577名無しさん@お腹いっぱい。05/01/28 12:15:33
dditimpo wo poron[ESC]
をすごいスピードで打ち込む
0578名無しさん@お腹いっぱい。05/01/28 12:17:20
s/ddi/cc/
0579名無しさん@お腹いっぱい。05/01/28 17:48:28
s/cc/S/
0580名無しさん@お腹いっぱい。05/01/28 19:30:56
う〜ん・・・簡単に思いつくとしたらば
yed2w0 wo <c-r>0
手数:12
0581名無しさん@お腹いっぱい。05/01/28 20:11:34
timpo
<c-r>0
0582名無しさん@お腹いっぱい。05/01/28 22:00:27
>>576 Stimpo wo poron<ESC>
0583名無しさん@お腹いっぱい。05/01/28 22:26:10
性器表現スレはここですか?
0584名無しさん@お腹いっぱい。05/01/28 22:35:49
そうです

v
i
m

(;´Д`)ハァハァ
0585名無しさん@お腹いっぱい。05/01/28 23:40:09
>>575
7.8.2は「埋め込みコード構文を使用する」なのですが・・・
そのご本、良く見ると初版第2刷だったりしませんか?

ちなみに第2版では2.3.5(p.57)が
「前後読みを使って数字にコンマを加える」です。
>>568のパターンは出て来ないようですが。
0586名無しさん@お腹いっぱい。05/01/29 00:25:19
koron has no timpo
0587名無しさん@お腹いっぱい。05/01/29 00:31:50
"/"で検索のとき
/draw でDraw,DRaw等もマッチ対称にしたいのですけど
どういうオプションがありますか?
0588名無しさん@お腹いっぱい。05/01/29 00:32:35
/\cdrawδ
0589名無しさん@お腹いっぱい。05/01/29 01:17:59
>>587
set ignorecase
0590名無しさん@お腹いっぱい。05/01/29 03:30:24
>>587
/draw\c
0591名無しさん@お腹いっぱい。05/01/29 03:42:51
/dr\caw
0592名無しさん@お腹いっぱい。05/01/29 04:05:54
>>590 >>591
むぅ。\cってどこにおいても良かったのか。
これはいいことを聞いた。
0593名無しさん@お腹いっぱい。05/01/29 04:14:48
似てるけど\vなんかは置く場所によって効果が異なるんだよな
0594名無しさん@お腹いっぱい。05/01/29 04:30:48
K氏はおそらく生理前とみた!きついきつい。きついよー小沢さーん
059557505/01/29 20:25:52
>そのご本、良く見ると初版第2刷だったりしませんか?
そのとおりでした。m(__)m
0596名無しさん@お腹いっぱい。05/01/30 00:14:19
nocindenしてもnoautoindentしても
C入力時にコピーしたらインデントされます
完璧にインデントを止めるにはどうすればいいのでしょうか?
0597名無しさん@お腹いっぱい。05/01/30 00:47:54
>>596 :set paste
0598名無しさん@お腹いっぱい。05/01/30 01:24:22
Vimのプログラムをダウンロードしたら
function Iew() range
let filename = tempname()
execute "'<,'> write ".filename
call system("iew ".filename)
call delete(filename)
endfunction
として使えとmanに記述してあったのですが
これはどのようにして使うのでしょうか?
"v"でビジュアルモードで選択中に":"で
:'<,'>
と言う物が出てきて
そのあとに、Iew()とうっても
E492: Not an editor command: '<,'>Iew()
と言われて実行できません
使い方が間違っているのでしょうか?
0599名無しさん@お腹いっぱい。05/01/30 01:57:56
:'<.'>call lew()
0600名無しさん@お腹いっぱい。05/01/30 14:29:39
>>599
2箇所、間違い探しがあるぞ
正解は

 :'<,'>call Iew()

でしょ?(w

'<は選択範囲の最初の行を、'>は選択範囲の最後の行を示す
0601名無しさん@お腹いっぱい。05/01/30 18:05:47
インサートのC-pの補てんで、該当リストを全表示にはできないんでしょうか?
それと、コマンドライン補てんで、ファイル名用のコマンドでないときに
ファイル補てんを行う方法(キー)はあるんでしょうか?
マニュアル見ても載っていなかったのでできないのかなぁ・・
0602名無しさん@お腹いっぱい。05/01/30 18:21:22
vimはgdbとリンクしてvimの画面でソースをデバッグできるのだろうか?
マニュアルのdebugger.txtにはgdbがのっていない・・・
0603名無しさん@お腹いっぱい。05/01/30 18:26:38
結構遠くまで探しに逝く実装だから全表示はうまく逝かないんじゃないかなあ。
0604名無しさん@お腹いっぱい。05/01/30 18:34:34
コマンドライン補てんでリスト表示できるから
期待してしまうんですよねー
0605名無しさん@お腹いっぱい。05/01/30 18:38:28
viのウィンドウバッファに、w3mやmanの画面を表示できるだろうか。
r !man ls
r !w3m ...
で出力結果として見れるけど、w3mでは続けて操作したいんだよね
0606名無しさん@お腹いっぱい。05/01/30 18:42:33
>>605
そういうことはできないしやらない、
って :h に書いてなかった?
screen でも使えばいいじゃん。
0607名無しさん@お腹いっぱい。05/01/30 19:01:01
>>606
そーすよね。
ただ、vimのレコーディングで、w3mをコントロールできれば最高かなっと・・
短絡的でした・・・
0608名無しさん@お腹いっぱい。05/01/30 19:06:13
vim onlineにgdbvimってのがあったよ。
0609名無しさん@お腹いっぱい。05/01/30 19:46:08
>>607
http://pc5.2ch.net/test/read.cgi/unix/1087436430/212
0610名無しさん@お腹いっぱい。05/01/30 20:20:53
vim6使ってます。
終了したときにカーソル位置を保存したいのですが、
どうすればいいのでしょうか?
「viminfo='20,<50,s10,h」
ってなってます。
0611名無しさん@お腹いっぱい。05/01/30 20:30:58
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif
0612名無しさん@お腹いっぱい。05/01/30 21:31:36
>>602 http://www.a-a-p.org/images/debugfull.png
0613名無しさん@お腹いっぱい。05/01/31 00:28:47
viを使って慣れてきたときの事を思い出しつつ…

viでカーソルを動かすとき、HJKLでは動けるが、カーソルキーでは動けない。
そんな束縛感にひたり、ニヤリとしてしまう。
長井秀和です。

viの話。
viに慣れてきた奴は、Windowsのメモ帳でも間違えたときEsc連打しちゃう。間違いない。

viに慣れてきた奴は、秀丸のあのボタンの絵のセンスはどうにかならないものかと思っている。
間違いない。

Excelで入力をミスったときにEscを押すんじゃない、入力した内容が消えてしまうぞ、気をつけろー!!

viに慣れてきた奴は、アレを使うときCtrl-c、Ctrl-sしか知らなかったりする。間違いない。

viに慣れてきた奴は、矩形選択にちょっとあこがれている。間違いない。
0614名無しさん@お腹いっぱい。05/01/31 00:41:07
>>613
そう思うと vim はカーソルでの移動も矩形選択もできるからめぐまれてるよなwwwwww
0615名無しさん@お腹いっぱい。05/01/31 01:50:16
split(or C-W,C-S)もしくはvsplit(or C-W,C-V)をしたタイミングで
全windowに対してコマンドを実行したい(:windo 〜〜 を使う)のですが,
(v)splitしたというautocmd用のイベントは無いのでしょうか?
# :windoの後にはwindow localな処理を行います (:match とか 'number' いじるとか)

とりあえずautocmd WinEnterで試してみたけど
:windoすると必ず最後のwindowにカーソルが移動してしまう・・
つまり、WinEnterイベントと:windoの副作用(最後のwindowに移動)の相乗効果によって
window間の移動(C-W,C-Wなど)が全く出来なくなってしまう
# 別のwindowに移動しようとする度に最後のwindowに移動してしまう oTZ

どうやら解決策のアプローチが悪いようです・・

(v)splitした時に全windowに何かする、という時のvim scriptのイディオムというか
正しいアプローチはありますか?
0616名無しさん@お腹いっぱい。05/01/31 02:57:24
>>613
失礼な、アレの操作方法なら M-x viper だって知ってるぞ!
0617名無しさん@お腹いっぱい。05/01/31 03:33:42
>>615
augroup MyDo
  autocmd!
  autocmd WinEnter * let g:curwin = winnr()
  autocmd WinEnter * windo if winnr()!=g:curwin | set nonu | else | set nu | endif
  autocmd WinEnter * execute g:curwin.'wincmd w'
augroup END
これにウィンドウを分割したかどうかの判定を付ける
0618名無しさん@お腹いっぱい。05/01/31 06:15:20
>>613
>viに慣れてきた奴は、Windowsのメモ帳でも間違えたときEsc連打しちゃう。間違いない。
馬鹿だなぁ。それ以前に入力内容に余計な i とか a とか A とか付くに決まってるだろ!
0619名無しさん@お腹いっぱい。05/01/31 09:48:52
>>602
試したら、レビューヨロシク。

gdbvim http://www.vim.org/scripts/script.php?script_id=84
idevim http://www.vim.org/scripts/script.php?script_id=168
0620名無しさん@お腹いっぱい。05/01/31 10:05:05
>>619
602ではないが、両方ともイマイチ
■ このスレッドは過去ログ倉庫に格納されています