■掲示板に戻る■ 1- 最新10

vim6

[280:名無しさん@お腹いっぱい。 (2001/07/23(月) 04:33)]
vim script で visual モードで選択中の文字列を
取得するのはどうすればよいですか?


[281:名無しさん@お腹いっぱい。 (2001/07/23(月) 06:54)]
>>280
normal! y


[282:KoRoN (2001/07/23(月) 08:56)]
>>280
スクリプトに入る前にyで@"に選択内容を入れておく方法がひとつ。
ただしこの場合、ビジュアルモード以外からのスクリプト呼出が難しくなります。
例:
function! GetVisualSelect()
return @"
endfunction
vnoremap! <F2> y:echo GetVisualSelect()

あとはline()とcol()に"'<"と"'>"を渡してスクリプトで頑張る方法しかわかりません。
getline()してvisualmode()の値に応じてstrpart()で部分的に切り出すというのが基本方針です。
こっちはnormalからでも動くのですけど、visual block時にマルチバイト文字を正しく扱うのが一苦労です。


[283:280 (2001/07/23(月) 16:03)]
>>281,>>282
Thank you.
うまいこと取得できたよ。
ところで、もうひとつ質問だけど
map のあとに変数か何かをもってきたいんだが展開されずにそのまま解釈されてしまう。

:map <F5> ":so " . script_dir . "test.vim"

ってしたら無効なマークがどうとか言われたよ。展開して欲しいんだが。
もひとつ、

:map と :map! って何が違うの?英語読めなくてスマソ。


[284:名無しさん@お腹いっぱい。 (2001/07/23(月) 16:06)]
>>283
>map のあとに変数か何かをもってきたいんだが展開されずにそのまま解釈されてしまう。
execute 使ってみ。

>:map と :map! って何が違うの?英語読めなくてスマソ。

まず :h map! して、読む努力してみましょう。;-)


[285:名無しさん@お腹いっぱい。 (2001/07/23(月) 16:11)]
>>284

:h map!より :h map-modesのほうがわかりやすい。スマソ


[286:名無しさん@お腹いっぱい。 (2001/07/23(月) 19:16)]
LaTeXの話が少々出たので、ついで話なのですが、
LaTeXって、少なくとも大学の工学部では使われております。

数式などがきれいに出力されるのはうれしいのですが、
あのシステムは、既に古いものだと感じております。
データの再利用などが面倒ですし。

時代は>>275のヤツか?


[287:KoRoN (2001/07/23(月) 20:06)]
>>286
XMLで書いてXSLTでLaTeXに変換できたら最高だな、って考えてます。
あの印刷出力の良さは他に変わるものを思いつきません。


[288:名無しさん@お腹いっぱい。 (2001/07/25(水) 02:44)]
Windows 版の話で申し訳ないが(っていうかこのスレッドってソフトウェア板にあるべきだよなぁ)
日本語だけ MS ゴシック、ASCII 文字列は別のフォントを使いたいんだができる?
guifontwide,guifontset あたりがくさいということは分かっているんだが…


[289:KoRoN (2001/07/25(水) 08:52)]
>>288
guifontsetはXでの(x)fontset用です。guifontwideはeucがutf-8の時しか使えないよ
うです。微妙におかしいのだけど次のような方法で、マルチバイト文字(漢字)だけ
フォントを変えることができます。

highlight MBChar font=MS_明朝
syntax match mbcharString display "[^ -~]\+"
highlight def link mbcharString MBChar

カーソルが重なった部分や、Visual Selectした部分のフォントが戻ってしまうのは
許してください。Cのコメント部分やらなんやらにかぶると、デフォルトフォントが
使われてしまうんですけど…まぁ、探せば何か設定があると思います。


次10 前10 最新10
NAME:MAIL:

read.cgi ver5.26+ (01/10/21-)