[過去ログ] Vim Part22 (1001レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
435
(1): 2013/12/18(水)00:08 AAS
>>434
それはヘルプには載ってないというかそういう関数はないので
redir => foo
scriptnames
redid END
let syn_list = filter(split(foo, '\n'), 'v:val =~# "syntax/vim.vim"')
" do something

とかすればいんじゃない?
436
(1): 2013/12/18(水)00:12 AAS
>>435
ありがとうございます!
なるほど変数へのリダイレクトですか〜
勉強になります
437
(1): 2013/12/18(水)00:14 AAS
>>433
Perl書かないから詳しくはわからんけが、その目的ならsyntasticは使えそう
438: 2013/12/18(水)00:22 AAS
>>436
あんま使わねえからそんな関数やら変数はないよ。ってヘルプに書いてあったわ
ご丁寧にscriptnamesのDictionary作るスクリプトも載ってる。まあ目的に合うかわからんが
:h scriptnames-dictionary
439: 2013/12/18(水)00:58 AAS
>>437
ありがとう。perlもHaskellもサポートされててちょうど良いわ。
440
(2): 2013/12/18(水)17:22 AAS
おお?NeoBundleのautoloadのmappingsに使えるモードってnvxoiだけでcがないのか
441: 2013/12/19(木)00:28 AAS
kana1
442
(1): 2013/12/19(木)06:34 AAS
>>440
そんなことはないでしょう
443: 2013/12/19(木)16:46 AAS
Vim Color Scheme Advent Calendar とかもやってる人がいるんだな。
外部リンク[html]:hail2u.github.io
これはこれで「アドベントカレンダー」っぽくていい
444: 440 2013/12/19(木)21:02 AAS
>>442
10日程前に修正されてました
さーせん
445: 2013/12/19(木)22:35 AAS
気に入ったマクロ
例えば、日本語の禁則を組み込んでテキスト整形するマクロを作ったとして
また後で使いたいと思ったとする。

q レジスタに入ったマクロをはき出すならば
:put q
だ。これを保存すればマクロはファイルとして保存される。
/*ここまではOK。問題は読み込みの方法が分からない。*/

マクロがファイルの形で保存されているとして
どうやって実行したらよいのだろうか?
446: 2013/12/19(木)23:03 AAS
let @a="HOGE"
でレジスタaに代入出来る
どっかに書いて読み込ませてからマクロとして実行すれば良いよ
447
(1): 2013/12/19(木)23:26 AAS
:r file_path
と合わせるのか。マクロそれで読み込めるね。ありがとう。

rでファイルに1行書き込んで、
それを(normal_modeなので)
0"ay$ (これなら改行文字が入らないで"a"レジスタに入る)
448: 447 2013/12/19(木)23:38 AAS
もっと良い方法思いついた。
/macro.vim/以下にvimファイルとして保存した方がスマートだ。
関数で定義して、sourceで読み込む。
vimはファイルタイプごとにアクション起こせるから、
txt,md(マークダウンファイル)を開いた時に、source /macro.vim/hogehoge
と書けば、必要な時に(日本語整形マクロはtxt,mdでのみ必要になり得る)
callで呼び出せる。

編集中のファイルを汚さないしコマンドで一発だからたぶんこれでOK。
449
(4): 2013/12/20(金)00:29 AAS
map! <BS> <Nop>にすると日本語入力がおかしい。
「あ」を入力すると「あ」が変換待ちで表示される。一文字目は問題ない。
次に「い」を入れると、「あ」が確定して「あい」が変換待ちになる。
次に「う」を入れると、更に「あい」が確定済みに追加され「あいう」が変換待ちになる。
次に「え」を入れると、更に「あいう」が確定済みに追加され「あいうえ」が変換待ちになる。
ここまでで「ああいあいう」が確定済みで、「あいうえ」が変化待ち、という状況。
今使ってるのはfedoraのgvimなんだけど、他のディストリやOSではどうかな?
端末版は問題ない。
450: 2013/12/20(金)11:50 AAS
>>449 Ubuntu + gvim で再現した
451: 2013/12/20(金)22:05 AAS
Emacs 使いの友人に Emacs には Grass 言語用の grass.el があって超便利なのに
Vim にないの?えっないの?って煽られたので誰かよろしく頑張ってくれ
452: 2013/12/20(金)22:48 AAS
Grassって知らんなあと思ったら
こんなネタ言語のために時間割くやつおるかlw
453: 2013/12/20(金)22:57 AAS
wwwwWWWwwwwwwWWwwwWw
454
(1): 2013/12/20(金)23:01 AAS
Emacsは何でもかんでもEmacsで完結してしまうからVimとは
プラグインの有無も違ってくるね。
:help design-not
455: 2013/12/20(金)23:38 AAS
>>454
これは完結とか高度とかそんなん関係ないBrainF*ck系言語だぞw
マイナーすぎてサポートされてないだけ
456: 2013/12/21(土)09:24 AAS
サポート? Emacsでは標準で入ってるのか……
457: 2013/12/21(土)15:11 AAS
>>449
preedit 部分を打鍵毎に<BS>で消してるような動きをするね。

map! <BS> a だと a が入ってくるし。
<Nop> で消えずに残っているような感じ。

そういえばこの辺微妙な実装になってるって話があった気がするな。
458: 449 2013/12/22(日)13:51 AAS
とりあえず遡って試してみたら、7.3.315までは再現した。それ以前だと
(gvim:16983): IBUS-WARNING **: Create input context failed: タイムアウトしました.
となってIMがオンにならないので確認できず。
俺の力じゃこれ以上は当たりをつけることさえ出来ない。
459: 2013/12/22(日)21:58 AAS
>>449
ほんまや。そういうマッピングはしてないから困らないが、おかしなことになるな
その状態で「あいう」→「ああいあいう」→確定→「ああいあいうあいう」

MacVim (Vim 7.4 patches 1-52) + MacUIM Anthy on OS X 10.9
460: 2013/12/23(月)20:50 AAS
>>433
セミコロン要るか要らないかは判断できないから無理。
というかそれが判断できるならそもそもセミコロン書かせない。
splainに食わせれば、英語だけどもう少し詳しいエラーがでる。

:!perl -c % 2>&amp;1 >/dev/null | splain
461
(2): 2013/12/24(火)17:19 AAS
<C-C> をそれ自身か別のキーにmapした場合
InsertLeave イベントが発生するようですがこれは仕様でしょうか?
関連するドキュメント等ご存知でしたら教えてくださると喜びます
再現する vimrc は以下の通りです

autocmd! InsertLeave * set nu!
nmap <C-C> <C-C>

imapやnnoremapした場合でもイベントが発生しているようです
環境 : Debian Wheezy
Vim version : 7.3.547 (Debian repository), 7.4.125 (自分でbuild)
これはこれでdvorakユーザの自分にはありがたいのですが
462: 461 2013/12/24(火)19:08 AAS
すみません間違えました
> <C-C> をそれ自身か別のキーにmapした場合
<C-C> を {lhs} に用いた場合です
Insert mode でCTRL-CするとInsertLeave イベントが発生します
463
(1): 461 2013/12/25(水)00:14 AAS
何度もすみません
Win7でも同じ挙動でしたので
ざっとソースコードを見たところCTRL-Cがmapされているかどうかによって
interruptするかしないか決めているようでしたので
この挙動は仕様だと理解しました
残念ながらドキュメントは見つけられませんでした
皆様ありがとうございました
464: 2013/12/25(水)00:24 AAS
*map_CTRL-C*
CTRL-C を {lhs} で使うことはできますが、それは Vim がキー入力を待機中のときだ
け機能します。Vim がビジー状態 (何かを実行中) のときは機能しません。Vim がビ
ジー状態の場合、CTRL-C は実行中のコマンドを中断します。
MS-Windows の GUI 環境では、CTRL-C にマップすることができるので、クリップボー
ドにコピーする機能を割り当てることができます。Vim の動作を中断するには
CTRL-Break を使います。
1-
あと 537 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.019s