[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 08:50 / Filesize : 186 KB / Number-of Response : 800
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Vim Part14



1 名前:名無しさん@お腹いっぱい。 [2007/03/19(月) 20:09:27 ]
立ててみた。

www.vim.org/

前スレ
pc10.2ch.net/test/read.cgi/unix/1151423973/



781 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/22(木) 12:09:00 ]
キーワードを2つ以上使い分けてnやNを利用できないでしょうか?

例えば検索キーがword1、word2の二つあったとすると、
・nを押したらカーソル位置以降のword1を検索
・何かのキーを押したらカーソル位置以降のword2を検索

という風にしたいのです。
よろしくお願いします。

782 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/22(木) 12:34:36 ]
/のあとカーソルキーで検索履歴をたどるのではダメ?

783 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/22(木) 13:15:09 ]
別のウィンドウでもうひとつvim動かした方がよくない?

784 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/22(木) 14:25:13 ]
履歴のほうならhistget("search",-2)で一つ前の検索語を取得できるな
helpで
> |:history|によって出力される{num}番目のエントリを、再
> 度実行するための":H {num}"というコマンドを定義する。
> command -nargs=1 H execute histget("cmd",0+<args>)

というのが紹介されているので、これをいじって

command -nargs=1 S execute "/" . histget("search",0-<args>)
とすれば:S のあとに入力された数だけ直前の検索語を検索できる
ちなみに:S 1は現在の語なので :S 2 で一つ前ね
:S のとき : S 2 と動作するように改良すればトグル動作にできる


プラグインだとmultiplesearchプラグインなら検索語を色分けできる

785 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/22(木) 14:26:36 ]
:history
:history search
histget()
あたりのhelpよめばほかに何かいいものが浮かぶかもしれない

786 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/22(木) 22:26:08 ]
>>780
ありがとうございます!できました!

787 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/23(金) 20:33:28 ]
/search1/;/search2/
がよくわからん。だれか教えてけれ
:help //; でドキュメントは見れるんだけどな

788 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/23(金) 23:19:41 ]
>>787
何が分からないのかがよくわかんないんだけど ";"のこと?
範囲指定の","と";"の違いですか?もしそうなら cmdline-rangesを参考に。
そうじゃなければスマソ。


789 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/24(土) 14:25:41 ]
テンプレートを入力するプラグインを書きました。以下宣伝です。
ripjohn.net/program/vim/template.zip
ripjohn.net/program/vim/index.html#template
内容:
>>354みたいに、テンプレートの展開には短縮入力機能を使います。
・ただ:iabbrevコマンドは特殊文字の入力がしんどいので(<CR>とか<lt>みたいに)、
  文字列値の式を引数にとって、変換して:iabbrevに渡すコマンドを用意しました。
・あとは、プレースホルダに飛ぶコマンド(<S-CR>, <C-CR>)と置き換えるコマンド(<CR>)だけです。
・プレースホルダには、デフォルトで入力される文字列を指定できます。
例:
「:StringAbbrLocal fopen] 'fopen(<+fname+>, <+mode:"r"+>)<++>'」で登録。
挿入モードで「fopen]」と打って<Esc>すると上記の通り展開される。
<S-CR>でひとつめのプレースホルダに移動、<CR>で入力開始。
再度<S-CR>でふたつ目のプレースホルダに。<CR>で「"r"」が挿入されて入力開始。
再々度<S-CR>で最後のプレースホルダ「<++>」が削除され、入力開始。

簡素ですが、コード書きやマークアップ文書の編集には大体間に合うんじゃないかと思います。
ご意見いただければ幸いです。



790 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/24(土) 14:34:56 ]
>>760
折り畳みで間に合うんじゃないですか? cf. :help folding
例:
 vim: set foldmethod=marker :
1章 供犠 {{{
1.1 供犠の機能 {{{
  ほげほげ
 }}}
1.2 供犠の危機 {{{
  うんたらかんたら
 }}}
}}}
2章 オイディプスと贖罪のいけにえ {{{
  ふーばー
}}}

って感じで。
foldmethod=exprで、foldexprに判別式を設定すれば
もうちょっとスマートに書けます。

791 名前:781 mailto:sage [2007/11/24(土) 15:17:18 ]
レスありがとうございます。

>>781
シーケンシャルでなくランダムアクセスでやりたいです。
Googleツールバーのように、複数のキーワードのボタンが勝手に出来て、
好きなのを押せばそのキーワードでページ内検索できるのがすごく便利だなと思ったので。
mで登録、`で移動と同様のやり方で検索キーを使い分けられればベストです。

>>784
ありがとうございます!これでほぼ解決できました。
:S2などでキーを切り替えてn、Nで次々に飛べるのでやみつきです。



792 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/25(日) 22:59:02 ]
>>784
これどうよ
検索履歴10個を候補にステータスラインに出す
/コマンドって履歴をステータスラインに出すほうがいいよね

let s:size = 10
function! s:S_completionList(A,L,P)
return join(map(range(1,s:size),'histget("search",0-v:val)'),"\n")
endfunction

command! -complete=custom,s:S_completionList -nargs=1 S exec "/".<q-args>



793 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/27(火) 21:37:00 ]
すいません、素朴な疑問があるのですが

カーソル移動をホームポジションに割り当てたところで、あるいはwやbを用意したところで
エスケープキーを押す必要があると、かえって使いにくいと思わないですか?

Ctrl+M や Ctrl+H みたいなことができるなら、ギリギリまでホームポジションに手を置いたまま作業ができそうですが
いちいちEscまで手を伸ばすのは結構しんどいと思うのですが・・・

つまらない事かもしれませんが、Vimをバリバリ使っている人がどう思ってるのか聞きたいです。

794 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/27(火) 22:09:26 ]
Ctrl+[ を使うからホームポジション崩れませんがな

795 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/27(火) 22:17:58 ]
Ctlr+C使ってる

796 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/27(火) 22:27:13 ]
Ctrl+C 潰しちゃあかんやろ

797 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/27(火) 22:27:30 ]
エスケープキーはファンクションキーと同じでvimに限らずほとんど触ることがないな
一応ついてるキーボードだけど

798 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/27(火) 22:40:20 ]
" alt + i 連打で () で囲まれた範囲を拡大選択
nnoremap <M-i> vib
vnoremap <M-i> ib

" alt + shift + i 連打で {} で囲まれた範囲を拡大選択
nnoremap <M-I> viB
vnoremap <M-I> iB


いまこういう設定をしているんだけどこれを <M-i> 連打するだけで
内側からテキストオブジェクトの範囲を拡大して選択するいいアイディアって無いものだろうか

function test()
{
alert("test");
}

文字列 test の中にカーソルがある時に <M-i> を一回押すと test が選択されて
もう一回 <M-i> を押すと今度は "test" が選択されてもう一度押すと alert("test"); が選択される感じ

799 名前:793 mailto:sage [2007/11/27(火) 23:14:41 ]
あうあうー
こんな便利なキーがあったとは・・・orz








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<186KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef