1 名前:名無しさん@お腹いっぱい。 [01/12/17 12:15] みんなでスクリプトを覚えよう
391 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/01 16:02] hで左に移動できないじゃん。
392 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/06/02 11:27] Headline更新 www.kaoriya.net/testdir/headline-20030602.tar.bz2 Slashdotが6月になっておかしくなったのを修正
393 名前:名無しさん@Vim%Chalice mailto:sage [03/06/03 02:11] そろそろg:chalice_curl_optionsみたいなcurlオプションキボーン 防火壁ナノネン. . .
394 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/06/04 11:37] >>393 www.kaoriya.net/testdir/headline-20030603.tar.bz2 対応しました。
395 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:koron at tka.att.ne.jp [03/06/17 19:39] まっつんさんとのコラボーレーション。Exciteを使った日英翻訳です。 www.kaoriya.net/testdir/excitetranslate.vim 範囲選択して:ExciteTranslation。なお翻訳結果は保証されません。
396 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/06/17 19:42] >>395 > KORABORESHON with Mr. まっつん. It is Japanese-English translation using Excite. コラボーレーションは無いよなぁ…(´・ω・`)
397 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/18 01:28] >>395 ご苦労様です。 早速試してみたところ、なんかエラーが出ましたが翻訳出来ました。 出てきたエラーはこんな奴: E177: 未知の関数 AL_echo 33 call AL_echo('Translating...', 'WarningMsg') 良く分からなかったのでコメントアウトしちゃいました。 多分、うちの設定が悪いかなんかのせいだと思うのですが、 一応使ってる奴のバージョンをご報告しておきます。 香り屋版 Windows用y gvim V6.1 適用済みパッチ: 1-474
398 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/18 01:46] >>397 chaliceに同梱されてるalice.vimが無い模様。 www.kaoriya.net/dist/chalice-1.8.019.tar.bz2 これを取ってきなされ。 chaliceがインスコされてないということはcurlとかも無さそうだな。 www.kaoriya.net/dist/curl-7.10.4-win32-ssl.tar.bz2 たぶんこれも取ってくることになるだろう。
399 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/18 02:05] >>398 訳が出てくるということはcurlは入っていると思われ
400 名前:397 mailto:sage [03/06/18 02:07] >>398 ありがとうございます。 ご指摘通り、chaliceのバージョンが古いせいでした。 v1.7を使用していたのですが、 v1.8に上げたところ、エラーが出なくなりました。 お騒がせ致しました。 いや、それにしても、このプラグインは便利ですね。 感謝感謝です。
401 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/18 17:25] calendar.vim : Calendar calendar.vim 1.3t 2003-06-17 vim.sourceforge.net/scripts/script.php?script_id=52 更新されてます。
402 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/20 12:35] VimTweak : The tweaking dll for GVim.exe. vim.sourceforge.net/scripts/script.php?script_id=687 Initial upload またまた、「まっつん」さんです。
403 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:koron at tka.att.ne.jp [03/06/20 12:56] 前からtweakが公開されれば、KaoriYa版からキャプション機能を削除しても良いかなぁって考えていたんです。 でもtweakでキャプションを消すとテキストエリアのウィンドウがズレることが発覚。どうしよ。
404 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/20 22:38] ウィンドウがズレるのは、ちょっとやだなぁ。 てか、キャプションってなんですか? Windows版で、透明度がうんたらっちゅーやつですか?
405 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/06/20 23:00] >>404 Windowsではタイトルバーというのが分かりやすいでしょうか?。 香り屋版を使っているならば :set guioptions+=C してみれば一発でわかります。 なお戻すには :set guioptions-=C
406 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/21 22:18] .gvimrcに、 syntax match Trailing "\s\+$" highlight link Trailing Error と書いたのですが、うまく反映されません。 なんかfiletypeとかsyntaxかがないときだけうまくいく感じです。 いつでも反映されるようにしたいのですが、 どこが間違っているんでしょうか。
407 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/06/21 22:45] >>406 Vimの基本的な動作に対する理解が足りない、のが原因です。syntaxはその型のファ イルを開いた際に毎回設定され、その設定開始前に必ず:syntax resetかそれ相当の 処理が行なわれています。そのため起動時に1度だけ実行される.gvimrcの設定はその 時点で上書されてしまい、効力を発揮することはありません。 そんなわけなのでsyntaxの設定が終わった後に、それらの設定が追加されるように autocmdにSyntax等々を組み合わせてみるのが良いでしょう。以下はその例です。た ぶんこのままでは思い通りに動かないので適当に修正してみてください。 function! s:TrailingError() syntax match Trailing "\s\+$" highlight link Trailing Error endfunction autocmd Syntax * call s:TrailingError()
408 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/21 23:30] まぁそういうおまいも vi に対する理解があるとはとても おもえんのだが。いいかげんやめたら?
409 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/21 23:42] タイミングだからゆうぞ。はっきりあんた臭い。コードの占有意識高すぎ。 やることがいちいち SHIFT-JIS 臭い。 architecutre dependentily. 抱える人間としては最悪に近い。 あんたが vim を手放せば一年の停滞はあってもトータルでみな 幸せになると思う。そうおもったことはない?
410 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/22 00:08] >>408 >>409 まぁまぁ、vimに貢献しているのは間違いないんだから。 ただ、KoRoNさんもこのスレだけじゃないんだけど、発言にトゲ があることを自覚してないんだろうな。
411 名前:404 mailto:sage [03/06/22 00:09] >>405 タイトルバー 消えたーー なるほど、よう分かりました。 これで更に1行多く表示できる。 新たな発見だわぁ…
412 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/22 21:21] KoRoN氏は別に嘘ついたりはしてないだろ。 時々ずばっと言った真実に、自分が痛いヤツだって ことを指摘されたくせに、それを認めたくない厨ども には嫌な人に見えるかもしれんが、それだけのこと。 現実を見ずに出る杭を打ちたいだけの馬鹿は氏んでいいよ。
413 名前:410 mailto:sage [03/06/23 01:48] >>412 自分より頭のいい人間に、「おまえ馬鹿だな」と言われて その人間をやな奴と思うのは普通だと思うが。 そのやりとりを聞いている周りの人間もイヤな気分になるのも 普通だと思うが。 そもそも、たかが掲示板で人を否定する必要はないはずだが。 いや、匿名の掲示板だからこそ否定することができるのか。 ここは、厨房お断りのスレなのか? だったら、「vim用のくだ質」みたいなものを作らなきゃダメかな。 まぁ、そういう感情を理解せずに、論理的に肯定しようとする お前こそいい人ぶろうとしているだけだろう。 自分ができるから当然ほかの奴もできるだろみたいに思っている 奴ほど最低なものはないからな。
414 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/23 01:50] >>413 ちょっとやめて頂けませんか。見苦しい。
415 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/23 02:56] >>413 どこが間違ってるか聞いたら、間違ってる箇所を指摘してくれただけでしょ。 言い方が気にくわない人がいるのはわかるけど、気にくわなくない人まで 否定する姿勢は見苦しいよ。 > そもそも、たかが掲示板で人を否定する必要はないはずだが。 そうですねぇ、本当に。
416 名前:名無しさん@お腹いっぱい。 [03/06/24 01:25] >>408 なぜにvi? KoRoNさんは、viに対する理解といってないが。。
417 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/27 18:29] 保存してないバッファでZoomWinを使うと、 バッファが/tmp/v012345/0になってしまう。
418 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/27 20:42] VimSpeak : Speak selected text with MS Agent vim.sourceforge.net/scripts/script.php?script_id=692 また新しいのが登録されました。
419 名前:名無しさん@お腹いっぱい。 mailto:sage [03/06/28 02:22] >>407 もう一つ 応用的な(略 があれば原因は100%特定出来そうだなw
420 名前:名無しさん@Vim%Chalice mailto:sage [03/07/07 22:08] 同じキーに2つ以上mappingされている時に 片方だけをunmapすることは出来ますか?
421 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/07/07 22:16] >>420 何を聞きたいのかイマイチわからないので想像で答えます。 :map <C-D> somestring1 :map <C-D> somestring2 このように続けて登録した時は後者が優先されるので、そもそも同じキーにマップす るという概念が成り立ちません。次に :map <C-D>1 somestring1 :map <C-D>2 somestring2 とした時には、これは別のマッピングとして登録されるのでそれぞれ :unmap <C-D>1 :unmap <C-D>2 で別々に解除できます。但し「<C-D>で始まるマッピング全てを解除する」という方 法はちょっと思いつきません。
422 名前:420 mailto:sage [03/07/08 00:05] >>421 分かりにくくてすいません。 ちゃんと具体例を書けば良かったですね。 <buffer> 有りでmappingされているものと、 <buffer> 無しで登録されているものの2つがダブって見えてただけでした。 例えば、 nnoremap <C-N> somestring1 nnoremap <buffer> <C-N> somestring2 の違いでした。ここで:nmapをすると、 n <C-N> * :somestring1 n <C-N> *@:somestring2 となります。@はbuffer localの印ですよね。 やりたいことは「どちらか片方を指定してunmapしたい」ということなのですが、 ヘルプを読んでunmapにも<buffer>を指定できることが分かりました。 <buffer>付きでmapしたら<buffer>付きでunmap、 そうでなければ<buffer>を付けずにunmapということで落ち着きました。 というわけで結局、自己解決しました。お騒がせしました。
423 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
424 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/26 00:24] vim-scriptでTimer(event)は無いのでしょうか? 無い場合、何か代替案はありますか?
425 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/07/26 00:28] >>424 :help CursorHold くらいでしょうか。単にウェイトさせるだけなら :help :sleep を参照してください。
426 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/26 01:14] >>425 ありがとうございます。 どちらも知っている内容でした。 ということは定期的にTimerEventを発生させる方法は無いのですね... perlなどのI/Fを使うしかないのかな?
427 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/07/26 10:41] >>426 いや、それも無理です。if_perl主導で何かコトを起こすことができないんです。Perl のスレッドを回してVIM::DoCommand使うとか、出来なくは無いんですがいろいろ不具合 があります。また私が直接確認したわけではありませんが、純粋にPerlスレッドとVim の相性の問題も最近報告されました。 あとは外部プロセスからvim --remote-*を定期的に起動する、という方法も考えられま すけど、これだと頻度の問題があるでしょう。 なんにしても用途に応じて別の解決法を模索した方が良いかもしれません。ユーザの操 作に割込んで、タイマーを含む何らかのイベントを起こすということはできません。そ のようなことをしたければ半無限ループ内でgetchar()を使って、完全に入力をコント ロールするしかないでしょう。
428 名前:名無しさん@お腹いっぱい。 mailto:sage [03/07/26 11:01] >>427 > if_perl主導で何かコトを起こすことができないんです。 そうだったんですか... > Perlのスレッドを回してVIM::DoCommand使うとか、出来なくは無いんですがいろいろ不具合 > があります。また私が直接確認したわけではありませんが、純粋にPerlスレッドとVim > の相性の問題も最近報告されました。 ちなみにどのような不具合/相性問題なんでしょうか? > ユーザの操作に割込んで、タイマーを含む何らかのイベントを起こすということはできません。 なるほど勉強になります。 > そのようなことをしたければ半無限ループ内でgetchar()を使って、完全に入力をコント > ロールするしかないでしょう。 残念ながらキー入力等を受け取った時にしかできそうにないんですね。 放っておいても定期的にEventが来る。ということはできないのか...
429 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/07/26 11:12] >>428 > ちなみにどのような不具合/相性問題なんでしょうか? 完全に再現条件を把握してないのですが、私が試した際にはVimを巻き込んでロック したり落ちたりしました。 > 残念ながらキー入力等を受け取った時にしかできそうにないんですね。 getchar(0)とかすれば、キーが無くても即帰ってきます。 > 放っておいても定期的にEventが来る。ということはできないのか... それができないからIRC on Vimとか諦めました。
430 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/01 20:24] Headline更新しました。 www.kaoriya.net/testdir/headline-20030801.tar.bz2
431 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/01 21:23] >>430 取扱説明書イイ!
432 名前:331 mailto:sage [03/08/01 22:00] >>348 s/330/331/ まぁ、それはともかく。 別にどこにばれようと問題なしです。 でなきゃURL晒さないですってば。
433 名前:331 mailto:sage [03/08/01 22:00] >>432 誤爆。スマソ
434 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/01 23:57] >>431 取扱説明書、というより各ヘッドラインの寸評ですね。 私はZDNetとAsahiとYomiuriにZDNet、それにSlashdotJapanを主に見てます。
435 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/02 18:31] plugin/headline/1101com.vim~ チルダがついてますが。
436 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/02 20:43] 作ろうかなぁと考えて、結局止めたからです。
437 名前:名無しさん@お腹いっぱい。 [03/08/06 14:08] 現在編集中のバッファ(ファイル)が未保存かどうかを 取得する関数などはありませんか??
438 名前:名無しさん@Vim%Chalice mailto:sage [03/08/06 14:12] getbufvar()
439 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
440 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/06 14:34] :echo &modified
441 名前:437 [03/08/06 14:58] &modifiedで状態を取得することが出来ました。 どうもありがとうございました。
442 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/07 20:42] 某スレで「foldはアウトラインとしては使いにくい」という至極納得な意見が出され ていたので、なんとかしてみるスクリプトを書いてみました。 www.kaoriya.net/testdir/folddigest.vim foldが有効になっているテキストバッファで :call FoldDigest() を実行すると、 foldのダイジェストツリーが表示された新バッファができます。そのバッファの方で 注目したい項目の行で<CR>すると、テキストバッファの該当箇所へカーソルが飛びま す。これで少し使いやすくなるでしょうか?。
443 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/08 00:04] >>442 某スレから参りました。 はぁ、便利。 あのスレの影響で使い始めたんですけど良いエディタですね。 使っていて気持ちが良いというか、リズムがあるというか。 スクリプトはだいぶ先になると思いますがちょこちょこ勉強していこうと思います。
444 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/08 00:19] >>443 動くようになったばかりなのでα版と考えてください。自動かそれに順ずる方法で call FoldDigest()する仕組みとか、行がズレた時の処理とか、ウィンドウの取り回 しとか考えていますんで、もうちょっと使えるものになるでしょう。 ま、Vimに限りませんがイッペンにイロイロ覚えようとはせず、その時に必要なもの を必要なだけ覚えていくのが良いんじゃないでしょうか。
445 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/08 23:31] folddigest.vimをアップデートしました。 www.kaoriya.net/testdir/folddigest.vim 使い方は>>442 と一緒ですが… > 行がズレた時の処理 主にコレについて修正しました。 :let folddigest_options = "quickfix" とすることで+quickfixを利用し、編集してズレたり消えたりしてもちゃんと飛べる ようになります。ただし:makeや:grepと併用できなくなるので注意してください。 :let folddigest_options = "flexnumwidth" とすると、行番号の桁数が必要最小限になるので画面幅が狭いときには有効です。 オプションはカンマで接続して複数指定することができます。例: :let folddigest_options = "quickfix,flexnumwidth" この場合、行番号は一切表示されません。スッキリです。
446 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/11 05:51] >>418 うまく動かなかった・・ 喋る前に消えたな・・
447 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/13 13:05] >>412 ずばっと言った真実て…(激藁
448 名前:名無しさん@お腹いっぱい。 mailto:sage [03/08/14 09:07] >>445 vim.sf.netではVim versionが6.0になっていましたが、6.1で試したらgetregがな いとエラーが出ました。 vim.sourceforge.net/scripts/download_script.php?src_id=2230
449 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/08/14 09:15] >>448 ありがとうございます。descriptionに追記しておきました。vim.orgに登録する時に は5.0か6.0しか選べません。そのため6.2でも6.0としか表示できないのです。
450 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
451 名前:名無しさん@お腹いっぱい。 [03/09/16 19:42] Vine Linuxでgvim(日本語版)を使っていますが、 起動時に検索など全ての文字入力が日本語になっており、 いちいち日本語をオフにしなくてはいけません。 初期設定は日本語(IME)をオフにする方法をどなたか御存じでしょうか?
452 名前:名無しさん@お腹いっぱい。 mailto:sage [03/09/16 20:08] >>451 h 'imi' h 'ims' スレ違い。 pc.2ch.net/test/read.cgi/unix/1058706125/
453 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/05 05:25] 昔は、は〜 むずかしそ〜だね〜と見ていたが、 今日からちょっとやってみた。 役に立ちそうな関数って何気にたくさんあるのね。
454 名前:名無しさん@お腹いっぱい。 [03/10/12 02:12] すみません、前スレでfoldexprの連番処理についてカキコされたかたいらっしゃいますでしょうか? もう一度functionを書いてくれるとありがたいのですが・・・。 1 1.1 1.1.1 2 2.2 2.2.2 みたいなのを function! MyFoldFunc() let line = getline(v:lnum) if line =~ '\m^\s*[1234567890]' return '>1' elseif line =~ '\m^\s*[1-9]' return '>2' elseif line =~ '\m^\s*■' return '>3' else return '=' endif endfunction set foldmethod=expr foldexpr=MyFoldFunc() で処理したい!
455 名前:名無しさん@Vim%Chalice mailto:sage [03/10/12 11:50] >>454 そのスクリプトが書き込まれたのはVim6スレのPart5ですね。書かれたのはまっつんさんですが、 www.kaoriya.net/testdir/orderedlist_fold.vim ココにコピーを置いておきました。細かいところはご自分で修正してください。
456 名前:名無しさん@Vim%Chalice ◆8XALICEsdk mailto:sage [03/10/12 11:51] >>455 間違えて名無しさん+トリップ無しで書き込んでしまいました。
457 名前:名無しさん@お腹いっぱい。 [03/10/12 12:17] >>455 ありがとうございます。 何度も甘えてすみませんが、連番が入ったテストテキストファイルをvimでオープンしてもfoldされません。 何か呪文があるのでしょうか?
458 名前:名無しさん@お腹いっぱい。 [03/10/12 12:26] >>457 すみません、できました。逝ってきます。。
459 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/10/12 12:26] >>457 オープンした後に :source orderedlist_fold.vim してもダメですか?
460 名前:名無しさん@お腹いっぱい。 [03/10/12 16:43] >>459 あ、いえ、出来ました。とってもいい具合です。 ありがとうございます。今まで楽してきましたが、徐々にVimスクリプト勉強してみたいと思います。 ところで、このfoldはtaglistみたいに、vsplitしたwindowに表示とかはできないのでしょうか?
461 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/10/13 00:50] >>460 >>442 を参照してください。
462 名前:名無しさん@お腹いっぱい。 [03/10/13 11:17] >>461 あ、どもです。 ところで、>>455 のfoldexpr=の後には、複数の関数つけても駄目でしょうか?
463 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/10/13 13:56] >>462 ダメです。
464 名前:名無しさん@お腹いっぱい。 [03/10/13 16:11] すみません。>>454 を質問したものですが、 以下のように、連番の下にさらに■が先頭にあったら、カレントの階層から一つもぐるようにするにはどうすればいいでしょうか。。 どうか初心者にお恵みを(-人-)。。 1. 折り畳み1 これは折り畳み1のテキスト ■ これは折り畳み1■のテキスト 2. 折り畳み2 これは折り畳み2のテキスト 2.1. 折り畳み2.1 これは折り畳み2.1のテキスト これは折り畳み2.1のテキスト ■ これは折り畳み2.1■のテキスト 2.1.1. 折り畳み2.1.1 これは折り畳み2.1.1のテキスト これは折り畳み2.1.1のテキスト ■ これは折り畳み2.1.1■のテキスト 2.1.2. 折り畳み2.1.2
465 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/18 11:15] >>464 (´・ω・`) ショボーン
466 名前:名無しさん@Vim%Chalice [03/10/19 23:52] script内で/やGでジャンプしてもjumplistに 履歴が残らないようにする方法ってあるのでしょうか? scriptユーザが<C-I><C-O>でびっくりしないようにしたいのです。 できれば:Explorerがjumplistを汚さないように修正したいな〜と思いまして。 よろしくおながいします
467 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/10/20 00:13] >>466 > script内で/やGでジャンプしてもjumplistに /の代わりにsearch()、Gの代わりにexecute linenum使ってみてください。
468 名前:466@Vim%Chalice [03/10/20 00:25] >>467 おお!早速のお返事ありがとうございます。 あと、もとの場所に戻りたいときhjklで何とかしようと思って↓みたいにしてます。 気分はma, `aなんですが。。。 もっとうまい方法は無いでしょうか? function! s:Mark() "{{{2 jumplistを汚さないMark&Jump return s:Cons(line('.'), col('.')) endfunction function! s:Jump(marker) "{{{2 jumplistを汚さないMark&Jump let l:ml = s:Car(a:marker) let l:mc = s:Car(Cdr(a:marker)) let l:cl = line('.') if l:ml < l:cl let l:vmotion = (l:cl - l:ml) . 'k' elseif let l:vmotion = (l:ml - l:cl) . 'j' else let l:vmotion = '' end exe 'norm 0' . l:vmotion . (l:mc-1) . 'l' endfunction
469 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/10/20 00:56] >>468 :help cursor()
470 名前:パパパッチ466@Vim%Chalice mailto:sage [03/10/20 01:19] >>467 おおおお!またまたお返事ありがとうございます。一行になりますた。 function! s:Jump(marker) "{{{2 jumplistを汚さないMark&Jump call cursor(s:Car(a:marker), s:Car(Cdr(a:marker))) endfunction てゆーか、漏れの真の要求が分かりますた。 scriptの副作用をユーザに与えたくないのです。 具体的には、こいつらを一発で退避・復帰したいな〜と思ってるのです。 :registers :jumps :marks undobuffer undolevels=-1だとバッファが丸ごと消えちゃうから厳しいです。 :reと:marksはスクリプトで出来そうだけど、:juとundobufferは VIM本体に機能を追加するしかないのかな。。。 :juやundobufferについては call これよりundobufferに追加しない() "バッファを編集 call これよりundobufferに追加する() みたいな機能でも充分なんだけど。 「よ〜し、パパパッチ当てちゃうぞー」とか思う人、居ません? ちなみに、漏れは「よ〜し、パパC開発環境作っちゃうぞー」レベルだす。 #質問乱発で失礼しました >KoRoNさん
471 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/10/24 11:45] >>470 > scriptの副作用をユーザに与えたくないのです。 Chaliceとかイロイロ作っている経験から言いますと…「独立したアプリケーション」 じゃなくて「エディタのスクリプト」なんですから、そういうことに神経使う手間と時 間で別の仕事に取り掛かったほうが良いでしょう。
472 名前:名無しさん@Vim%Chalice [03/10/31 01:02] class ●● { ... }; をfoldingしたい。 何か良い方法はありますか? 以下試したこと fdm=markerは正規表現使えなさそうだし, # class定義毎に予め {{{ }}} で囲んであればいいけどそんなのはまず有り得ないので fdm=exprはregion指定ができない?(できるのか?) fdm=syntax で syntax region start="^class" end="^};" しようとしたら $VIMRUNTIME/syntax/cpp.vim の keyword cppStructure に含まれる"class"の方が優先度高くて region の方で class が引っかかってくれなかった cppStructure を clear するか、clear 後にcontains付きで再定義すればOKだったが… # containedの場合は、region側で contains=cppStructure が必要 うーむ。一筋縄で行きそうにない… foldtextとか使えば出来るのかなぁ?(使ったことないから分からない…)
473 名前:472@Vim%Chalice mailto:sage [03/10/31 01:03] × clear 後にcontains付き ○ clear 後にcontained付き
474 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/31 08:16] おれはそういうのはexprでやった。 www.vim.org/tips/tip.php?tip_id=523 setl foldexpr=FoldBrace() setl foldmethod=expr function! FoldBrace() if getline(v:lnum) =~ '^class .*{$ return '>1' endif if getline(v:lnum) =~ '^};$' return '<1' endif return foldlevel(v:lnum-1) endfunction ~
475 名前:名無しさん@お腹いっぱい。 [03/10/31 20:24] 検索をすると、次に起動したときに、その検索語が色づけされます。 これをキャンセルする、または色づけしないようにするにはどうしたらいいですか?
476 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/31 20:47] >>475 pc.2ch.net/test/read.cgi/unix/1058706125/531-533 スレ違い?
477 名前:475 mailto:sage [03/10/31 22:25] >>476 アリガトン
478 名前:472 mailto:sage [03/10/31 23:37] >>474 d! vim online に tips があったんだね
479 名前:472 mailto:sage [03/11/04 03:13] >>474 試してみたんですが、returnする時に'<1'表記するとバグりません? foldlevelが1のまま0に減らないんですよ… '>1'の方は正しく1になっているようですが… これらを'a1'と's1'に変えるとより分かり易く再現されます。 最初のs1の部分で減らないので、2回目にa1が実行される所でfoldlevelが更に増えて2になります。 ですが、2回目のs1の所まで来ると、一気に0まで戻ります。 vimのfold関係のバグかな?
480 名前:474 mailto:sage [03/11/04 07:55] >>479 最後の return foldlevel(v:lnum-1) を return '=' にするとうまくいくかも。 helpにはfoldlevel(v:lnum-1)を使えって書いてあるけど、実際には -1にしかならない。 シングルクウォートがぬけてました。 if getline(v:lnum) =~ '^class .*{$'
481 名前:名無しさん@お腹いっぱい。 mailto:age [03/11/13 21:19] ChangeLogMemoをVimでお手軽に作れるようにとスクリプトに挑戦してみたけど どーもうまくいかん。normalが未定義と言われ無効な表現と怒られる。 :Changelogでmemo.changelogってーファイルを開いて先頭に整形した 日付とかを入れたい。 どこがどう間違ってるか教えて。以下の関数とかは全部_vimrcに記述している。 ttp://apollo.u-gakugei.ac.jp/~yoshiki/clmemo/cltips.php ここのは試したけど動かせなかった。 command! Changelog :call Chlog() function Chlog() execute ":e c:\Program Files\Vim\memo.changelog" execute "normal gg0" map ,d ggi<CR><CR><ESC>kki<C-R>=strftime(\"%c\")<CR> \ nanasisan <nanasi@2ch.net><ESC>o<CR><TAB>* endfunction
482 名前:481 mailto:age [03/11/14 21:13] いろいろ調べてよーやく望む動作ができるようになったぞい 多分とても原始的な方法。ま、せっかく作ったんで書いとくよ。 " ,d : 時刻と署名を先頭に挿入 " ,n : エントリを追加 " どちらもChangeLogMemo用 map ,d ggi<CR><CR><ESC>kki<C-R>=strftime("%Y-%m-%d(%a) %X")<CR> nanashisan <nanashi@3ch.net><ESC>o<CR><TAB>* map ,n ggo<CR><TAB>* " :Changelog : clmemo.changelogファイルを開くコマンド command! Changelog :call Changelog() function Changelog() let clmemo = $VIM . "\\clmemo.changelog" execute ":e " . clmemo let timestamp = getline("$") let now = strftime("%Y-%m-%d") if (timestamp ==? now) execute "normal " . ",n" else execute "normal " . ",d" endif endfunction
483 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/27 16:47] viつかいだして2年ぐらいになるし, そろそろスクリプトも書けなあかんなぁと思ってこのスレを読んでみると, 簡単なことでも四苦八苦する様を見てemacsに移行しようかと 思ってしまった. lispは応用効くし.
484 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/27 17:13] その程度の動機でemacsに移行できるならしとけ
485 名前:名無しさん@お腹いっぱい。 [03/12/02 21:58] 機能多すぎてさ。迷っちゃうわけよ。どの編集方法がもっとも最速か?少ないキータッチで実現できるか? 入力補完を使用した方が早いのか、画面ないの単語まで移動してコピって作成した方が早いのか? 迷ってるうちにマウスとキーボードでコピってるヤツの方がサクサクッと仕上げちゃってるわけよ。 編集そのものよりいかにエディタを使いこなすか?にずれちゃってるわけよ。ある程度学習すればリターン の方が大きくなるであろうとは思うのだけれど、なかなかその道が見えてこないわけよ。半年以上はvi 使ってると思われるんだけど、いまだにその辺のエディタと対してスピード変わってねーんじゃねー? っていう疑いをぬぐい切れぬわけよ。
486 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/02 22:04] とりあえず、ここはvim6の、それもスクリプトを専門に扱うスレなので ここはスレ違い。 vi 2nd ttp://pc.2ch.net/test/read.cgi/unix/1020611467/ EmacsとViはどっちが★腐れたエディタ★か ttp://pc.2ch.net/test/read.cgi/unix/987839931/ Vim vs Emacs (Editor War) ttp://pc.2ch.net/test/read.cgi/unix/983911547/
487 名前:名無しさん@お腹いっぱい。 [03/12/03 13:03] 485 には vi 使いこなす能力がないっつーことだ
488 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/08 17:49] 初めて vim スクリプトを勉強するなら、 eval.txt と usr_41.txt のどっちの方を先に 読んだ方がいいですか? 行数が eval は 41 のほうの 3 倍もあるので、どんな感じなのかと。
489 名前:KoRoN@Vim%Chalice ◆8XALICEsdk mailto:sage [03/12/08 18:19] >>488 他のプログラミング言語に慣れているのであれば、リファレンスマニュアルである eval.txtを必要なところだけかいつまんで読み、差分を理解するようにしたほうが近道 です。そうでないならusr_41.txtを読みながら1つ1つ順番に試した方が早く習得できる でしょう。
490 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/08 20:42] >>489 eval を斜め読みしてみます。
491 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/07 15:30] このスレとか:help augroupとか色々なスクリプトとか読んでみたんだけど、 未だにaugroupが何の為にあるのか分からない。 これ使うとどんな嬉しい事があるの?