Vim Part16
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2009/01/16(金) 00:56:51http://www.vim.org/
前スレ
Vim Part15
http://pc11.2ch.net/test/read.cgi/unix/1202050038/
関連情報は>>2-8あたり。
0352名無しさん@お腹いっぱい。
2009/06/15(月) 16:30:15thx
それで大丈夫そうだ
0353名無しさん@お腹いっぱい。
2009/06/15(月) 16:56:44なれるまで大変そうだね。。
0354名無しさん@お腹いっぱい。
2009/06/16(火) 01:11:00そんな必要全然ないよ。
>>350のは編集するとき不便だって話じゃないかな。
ただそれでも隣接行からo/Oすれば十分だとは思うけど。
0355名無しさん@お腹いっぱい。
2009/06/16(火) 16:49:420356名無しさん@お腹いっぱい。
2009/06/17(水) 13:58:14そんなにいいもんかな
0357名無しさん@お腹いっぱい。
2009/06/17(水) 20:25:33ソフトの拡張用途でも定番、クロプラ物はとくに
とにかくrubyよりはまし
0358名無しさん@お腹いっぱい。
2009/06/17(水) 21:05:210359名無しさん@お腹いっぱい。
2009/06/17(水) 22:11:050360名無しさん@お腹いっぱい。
2009/06/17(水) 22:26:450361名無しさん@お腹いっぱい。
2009/06/17(水) 23:41:400362名無しさん@お腹いっぱい。
2009/06/18(木) 02:29:25shとまではいかないまでも、perlぐらいの地位は得てるの?
0363名無しさん@お腹いっぱい。
2009/06/18(木) 04:50:440364名無しさん@お腹いっぱい。
2009/06/18(木) 07:33:300365名無しさん@お腹いっぱい。
2009/06/18(木) 10:17:11*pronounce*
0366名無しさん@お腹いっぱい。
2009/06/18(木) 17:35:00実行結果の確認って、一々Ffとかieのブラウザをリロードしなきゃいけないんですか?
ideみたくvim内で実行結果を確認することって出来ないんです?
0367名無しさん@お腹いっぱい。
2009/06/18(木) 17:41:460368名無しさん@お腹いっぱい。
2009/06/18(木) 17:47:110369名無しさん@お腹いっぱい。
2009/06/18(木) 21:58:300370名無しさん@お腹いっぱい。
2009/06/18(木) 22:07:30それとも起動後、必ず i 入力するの?
0371名無しさん@お腹いっぱい。
2009/06/18(木) 22:22:44iはinsertを行いたい場面で使うし、挿入モードにしたいときに適したコマンドで挿入モードにするよ
新規ファイルを編集したいときに限定すれば起動した後必ずといっていいほどiを入力してるかな
0372名無しさん@お腹いっぱい。
2009/06/18(木) 22:25:550373名無しさん@お腹いっぱい。
2009/06/19(金) 10:46:02これをやめさせるにはどうしたらいいでしょうか。
たぶんgitモードかなんかになっていると思うので、それをやめさせればいいのだと思いますが。
0374名無しさん@お腹いっぱい。
2009/06/19(金) 13:04:43アイン・シュタイン
0375名無しさん@お腹いっぱい。
2009/06/19(金) 15:16:080376名無しさん@お腹いっぱい。
2009/06/19(金) 16:07:25*.pyでも有効にするにはどうしたらいいでしょうか。
Emacsから乗り換え中で、あまりよくわかっていません。
vim 7.2 使用中
0377名無しさん@お腹いっぱい。
2009/06/19(金) 17:40:21そういうのは screen + w3m とかで。
0378名無しさん@お腹いっぱい。
2009/06/19(金) 19:51:18.vimrcの先頭に
filetype plugin on
を入れたら、*.pyでもうまくいくようになりました。
0379名無しさん@お腹いっぱい。
2009/06/19(金) 22:14:03vim仕様の原理主義的な発想を排除して聞きたい。
なんで、新規ファイルの時は毎回 i を入力してるの?
0380名無しさん@お腹いっぱい。
2009/06/19(金) 22:18:000381名無しさん@お腹いっぱい。
2009/06/20(土) 00:49:06がどの辺までかワカランけど
新規ファイルだろうがaを百個打ちたかったら
100ia[esc]ってiの前に数字打ったりするだろ
バッファが空だろうと挿入モードに入る前にやることなんていろいろある
例えば新規ファイルを開いた瞬間インサートモードになってる、とかいう仕様じゃ困るよ
0382名無しさん@お腹いっぱい。
2009/06/20(土) 00:54:32横から答えちゃった、申し訳ない
0383名無しさん@お腹いっぱい。
2009/06/20(土) 00:55:10なんで、「毎回」 i を打つの? って聞いてる。
おまえが、「毎回」 aを100個入力するなら、すまんかったな。が、そうじゃないだろ?
原理主義は越えないとその先へは進歩できないぞ。
0384名無しさん@お腹いっぱい。
2009/06/20(土) 00:57:24先に行きたい人は行けばいいじゃない。
おれはほっといてくれていいよ。
0385名無しさん@お腹いっぱい。
2009/06/20(土) 00:57:290386384
2009/06/20(土) 00:59:26381とも別人。
0387名無しさん@お腹いっぱい。
2009/06/20(土) 01:15:59それで原理主義を乗り越えたことになるのか
普通に不便そうだがw人によっては便利なのかもね
0388名無しさん@お腹いっぱい。
2009/06/20(土) 01:18:52小さな一歩だが、原理主義を乗り越えるべき大きな前進。
だって、毎回 i をいれるなら、めんどくさく感じないと駄目な気がする。
0389名無しさん@お腹いっぱい。
2009/06/20(土) 01:26:00勝手に挿入モードに入られても困る
0390名無しさん@お腹いっぱい。
2009/06/20(土) 01:41:16/hoge した 50G したりしてから i するじゃん。
0391名無しさん@お腹いっぱい。
2009/06/20(土) 01:47:360392名無しさん@お腹いっぱい。
2009/06/20(土) 01:48:23vim起動後その前後の行に入力したければoとかOをタイプするし
行末に文字を追加したければAをタイプする
どこに文字を挿入するかで違う
最初から挿入モードで使いたい, モードなんて無視したい人にはcreamおすすめ
0393名無しさん@お腹いっぱい。
2009/06/20(土) 02:19:430394名無しさん@お腹いっぱい。
2009/06/20(土) 02:35:51っていうのはなんか違う気がする。
自分でめんどうだと思っているのにそのまま使っている人の方がどちらかと言えば近いような気もする。
0395名無しさん@お腹いっぱい。
2009/06/20(土) 02:36:20「何か入力する前にi(またはa)」と指や意識が慣れちゃってる人はわざわざ使い分けるのが面倒かもね
普段の考え方が一入力離脱型かベッタリ入力時々編集型かで分かれそう
「新規ファイルなんて滅多に作らない」人って業務スタイルによっては結構いそうだし
「面倒なことはガンガン設定して楽しようぜ」というのは良いことだとは思う
0396392
2009/06/20(土) 02:43:31「毎回」iをタイプしたりはしないね
0397名無しさん@お腹いっぱい。
2009/06/20(土) 02:46:26で、最初から、入力になるように試してみたんだけど、入力を抜けるのが面倒くさく感じたぞ。
oやiは1キーだけど、C-[は2キー使うからな。慣れの問題かもしれん
0398名無しさん@お腹いっぱい。
2009/06/20(土) 07:18:380399名無しさん@お腹いっぱい。
2009/06/20(土) 20:08:08できれば現在編集中のvimを終了することなく、編集した*.snippetsの内容を反映させたいんですが。
0400名無しさん@お腹いっぱい。
2009/06/20(土) 20:44:29そう言う話でてくると思った。でも、程度問題って事なんだよね。その程度では原理者義者ではない。って趣旨だから。
でも、原理主義者のほとんどは「俺は違う」って思ってる。
0401名無しさん@お腹いっぱい。
2009/06/20(土) 22:13:29どういう意味?
0402名無しさん@お腹いっぱい。
2009/06/20(土) 22:18:11×そう言う話でてくると思った
○そういうレスを待っていた
0403名無しさん@お腹いっぱい。
2009/06/20(土) 23:33:01つまり
imap <C-o> foo
を
imap <C-.> foo
にしたいのですが、「.」が入力されるだけで、うまくコマンドが実行されません。
0404名無しさん@お腹いっぱい。
2009/06/21(日) 01:50:03それって原理主義だろ? って言うと「脊髄反射で否定する」って事さ。
0405名無しさん@お腹いっぱい。
2009/06/21(日) 02:06:56人を原理主義者呼ばわりする奴はキチガイの煽り屋だから相手しちゃダメ、てこと
0406名無しさん@お腹いっぱい。
2009/06/21(日) 03:05:53亀ですまん。
新規ファイルを作ったらなんか書きたいので、大抵すぐ挿入モードにしてる。
:enewだとか:spだとかの場合はまた違うけど。
0407371
2009/06/21(日) 03:08:36ええと、とりあえず言いたいのは
> なんで、新規ファイルの時は毎回 i を入力してるの?
毎回とは書いてないよ。大抵って書いてる。
その理由は>>406です。
0408名無しさん@お腹いっぱい。
2009/06/21(日) 03:13:27言いたいことは伝わってるかな…?
0409名無しさん@お腹いっぱい。
2009/06/21(日) 03:17:58それが脊髄反射。
0410名無しさん@お腹いっぱい。
2009/06/21(日) 03:31:27CTRLと組み合わせできるのは基本的には
http://ja.wikipedia.org/wiki/ASCII
ここのASCII制御文字の表にあるような文字だけ。
:echo getchar()
に続けてキーを押すとキーコードが確認できるので、それで CTRL のありなしで同じ結果になる場合は区別できないということ。
0411名無しさん@お腹いっぱい。
2009/06/21(日) 03:37:58ありがとうございます。
これってvimというよりはterminalの制限ですよね。GUIバージョンでも同じ制限があるんですか。残念。
かわりに Ctrl+¥ や Ctrl+_ を使う事にします。
あと、現在vimスクリプトに挑戦しているんですけど、「カーソルのある場所の文字」を見て分岐するような関数はどうやって書くのでしょうか。
if カーソル状の文字が '<' なら
関数foo()を実行
else
関数bar()を実行
end
みたいなのです。
重ね重ねすみませんが、よろしくお願いします。
0412名無しさん@お腹いっぱい。
2009/06/21(日) 03:48:43strpart(getline("."),col("."),1)
で取れたよ
0413名無しさん@お腹いっぱい。
2009/06/21(日) 03:51:32strpart(getline("."),col(".")-1,1)
0414名無しさん@お腹いっぱい。
2009/06/21(日) 10:49:28GUI版なら設定可能だよ。できないというのであればもう少し使用環境を詳しく書いて。
> カーソルのある場所の文字
>>413の方法もあるけど私はgetline('.')[col('.')-1]の方が好みかな。
他にも方法はあるけどややこしいだけだから気にしなくてもいいよ。
0415名無しさん@お腹いっぱい。
2009/06/21(日) 11:59:56ありがとうございます。getline('.')[col('.')-1] を使うことにします。
それでですね、カーソル上の文字によって、iまたはaを使いたいんですが、うまくいきません。
""" 別の関数(ここではstrftime())の実行結果を挿入する。
""" カーソル上の文字が '@' ならその右側に、それ以外なら左側に挿入する。
function Func1()
let ch = getline('.')[col('.')-1]
if ch == '@'
"exec "normal a<C-r>=strftime('%c')<CR>"
return "a<C-r>=strftime('%c')<CR>"
else
"exec "normal i<C-r>=strftime('%c')<CR>"
return "i<C-r>=strftime('%c')<CR>"
endif
endfunction
":nmap <C-¥> :call Func1()
:nmap <expr> <C-¥> Func1()
これを実行すると、<C-r>=strftime('%c')<CR> がそのまま挿入されてしまいます。
どなたか助けてください。
0416412
2009/06/21(日) 13:41:53おお、そういう感じに取れるんですね。一文字の場合はそっちがすっきりしてよさげです。
>>415
\<C-R>という風に記述してみたらどうでしょうか?
0417名無しさん@お腹いっぱい。
2009/06/21(日) 19:04:42>¥<C-R>という風に記述してみたらどうでしょうか?
それで行けました。さんくすです。
>>414
>GUI版なら設定可能だよ。できないというのであればもう少し使用環境を詳しく書いて。
できますか? 環境はMacVM.appです。vim7.2相当。
0418名無しさん@お腹いっぱい。
2009/06/21(日) 20:02:40たとえば
request_method
と入力して、なにかキーを押すと
REQUEST_METHOD
となるようにしたいです。
0419名無しさん@お腹いっぱい。
2009/06/21(日) 20:14:45viw~
0420名無しさん@お腹いっぱい。
2009/06/21(日) 20:16:17viwU
でどうでしょ
0421名無しさん@お腹いっぱい。
2009/06/21(日) 23:02:21カーソルがどんどん左に行ってしまうんですが、なんか止める方法ナイスかね。
0422名無しさん@お腹いっぱい。
2009/06/21(日) 23:12:030423名無しさん@お腹いっぱい。
2009/06/21(日) 23:22:25a [esc] a [esc] a [esc] a [esc]
と入力するようにすればいいんじゃナイスかね
0424名無しさん@お腹いっぱい。
2009/06/22(月) 10:37:14なんでそんな入力してるの?
0425名無しさん@お腹いっぱい。
2009/06/22(月) 10:43:410426名無しさん@お腹いっぱい。
2009/06/22(月) 10:47:18:map
とすると、なんかカスタマイズしたぶんだけが表示されて、一覧ではないようです
イメージ的にはEmacsの C-h l が欲しいんですけど。
0427名無しさん@お腹いっぱい。
2009/06/22(月) 10:49:340428名無しさん@お腹いっぱい。
2009/06/22(月) 10:55:20ありがとうございます。これを参考に vbU でやってみました。
あとカーソルが移動しちゃってるので、移動しないようにしたいのですが、どうしたらいいでしょうか。
vbUw とすると、カーソルが次の単語の先頭に移動しちゃいます。
0429名無しさん@お腹いっぱい。
2009/06/22(月) 11:19:00vbUw じゃなくて vbUe でよさそうです。eなんていうのがあるとは知りませんでした。
で、関数にしてみたんですけど、どうでしょうか。添削お願いします。
function MyUpcaseWord()
normal vbUe
endfunction
":imap <C-q><C-u> <C-r>=MyUpcaseWord()<CR>
:imap <C-q><C-u> <Esc>:call MyUpcaseWord()<CR>a
:nmap <C-q><C-u> :call MyUpcaseWord()<CR>l
0430名無しさん@お腹いっぱい。
2009/06/22(月) 12:56:07require_function<ESC>としたときにカーソルはnにあるのでiwを使っていました。
require_function<ESC>vbとすると、末尾のnは選択されないように思うのですが、そのへんは大丈夫です?
0431名無しさん@お腹いっぱい。
2009/06/22(月) 16:20:10手元の環境では、「n」にカーソルがある状態で vb とすると、「n」も含めて選択されました。
vimのバージョンによって違うのかもしれないですね。
けどvimスクリプトは難しい
0432名無しさん@お腹いっぱい。
2009/06/25(木) 07:17:42かつその一覧表示から該当する行にジャンプするようなvimスクリプトってありますか。
イメージとしては、現在編集中のバッファから '^¥s*def ¥w+' や '^¥s*class ¥w+' に一致する行を一覧表示させ、
そこからクラス定義やメソッド定義に簡単にジャンプしたいです。
0433名無しさん@お腹いっぱい。
2009/06/25(木) 07:30:06tagexplorer.vim
あたりを使えばよいように思う。
0434名無しさん@お腹いっぱい。
2009/06/25(木) 09:05:50:vimgrep /^\s*\<\%(class\|def\)\> \w\+/j % | cwindow
とかでどうですか?
0435名無しさん@お腹いっぱい。
2009/06/25(木) 12:42:56朝はやくからありがとうございます。
ctagsはあらかじめ実行しておく必要があるし、ちょっと目的とは違うようなので、
:vimgrep のほうを使うことにします。
:vimgrep は、検索結果のウィンドウでEnterキーを押したら該当箇所にジャンプしてくれて便利ですね。
これをカスタマイズして、ジャンプすると同時に検索結果のウィンドウを閉じるような関数をつくり、
それを <C-j> とかに割り当てたいんですけど、どうしたらいいでしょうか。
検索結果のウィンドウでだけキーバインドを変える方法があれば教えてください。
0436名無しさん@お腹いっぱい。
2009/06/25(木) 13:40:440437名無しさん@お腹いっぱい。
2009/06/25(木) 14:39:36わざわざ関数を作ってマップする必要はないと思うけど
:autocmd BufReadPost quickfix nnoremap <silent> <buffer> <C-j> <CR>:cclose<CR>
0438名無しさん@お腹いっぱい。
2009/06/25(木) 21:22:12目的見てからtaglist勧めたのに。すまんこ
0439名無しさん@お腹いっぱい。
2009/06/25(木) 22:29:19どうもありがとうございます。
>:autocmd BufReadPost quickfix nnoremap <silent> <buffer> <C-j> <CR>:cclose<CR>
自分なりに調べたところ、
・:autocmd を使って、quickfix というバッファでBufReadPost イベントが発生したときに、
・nnoremp を使って C-j にコマンドをバッファローカルに割り当てる
ということでいいでしょうか。
うーん難しい。
>>438
こちらこそすみません。ctagsは複数のファイルを横断的に検索するのと、
あらかじめ実行しておかなければいけないから変更直後には使用できないと
思ってやめました。
例が def と class だったので ctags のほうをお勧めされたと思うのですが、
実際にはそれ以外の wiki や html や不定形のファイルも扱いたかったので。
0440名無しさん@お腹いっぱい。
2009/06/25(木) 22:47:34うん。ctagsを使うものを勧めた理由はそういうわけでした。
quickfixの方がよかったですね。おさわがせしましたよー
0441名無しさん@お腹いっぱい。
2009/06/26(金) 00:27:04教えてくれた人超サンクスです 未来が30パーセント明るくなった
:autocmd BufReadPost quickfix nnoremap <buffer> <C-p> k
:autocmd BufReadPost quickfix nnoremap <buffer> <C-n> j
これで C-p と C-n で上下に移動できるようになったウヒョー
あと追加で質問させてください。
・quickfix のウィンドウの高さを変えるにはどうしたらいいですか。
:help cwindow は意味不明でした。
・quickfix のウィンドウ内だけ、カーソルのある行の背景色を変えるにはどうしたらいいですか。
カーソル行の色を変えることができると、視認性が上がりすごく選択しやすくなります。
・quickfixでは、行の先頭の空白が取り除かれるようなんですが、これを取り除かないように変更できますか。
行頭の空白が取り除かれると、インデントがわからなくなってしまいます。
・:vimgrep /^[ ¥t]*¥(class¥|def¥) /j % | cwindow
をキーマップにバインドするかっこいい方法は何があるでしょうか。
:nmap <C-_> :vimgrep /^[ ¥t]*¥(class¥|def¥) /j % | cwindow
としたけどうまくいかなかったので今は
function MySearch()
:vimgrep /^[ ¥t]*¥(class¥|def¥) /j % | cwindow
endfunction
:nmap <C-_> :call MySearch()<CR>
としています。もっといい方法があれば教えてください。
おしえてくんでごめんなさい
0442名無しさん@お腹いっぱい。
2009/06/26(金) 00:57:040443名無しさん@お腹いっぱい。
2009/06/26(金) 02:07:31それだけ色々やりたいのならプラグイン入れた方がいいんじゃない?
ttp://sites.google.com/site/fudist/Home/grep
これのBGrepとかいいと思うよ。
0444名無しさん@お腹いっぱい。
2009/06/26(金) 14:43:31> :nmap <C-_> :vimgrep /^[ ¥t]*¥(class¥|def¥) /j % | cwindow
最後に <CR> を忘れてるだ
0445名無しさん@お腹いっぱい。
2009/06/26(金) 16:41:59au QuickfixCmdPost vimgrep cw
してないの?
0446名無しさん@お腹いっぱい。
2009/06/26(金) 21:32:51http://d.hatena.ne.jp/h_east/20090205 のコメントのところ
autocmd QuickfixCmdPost [^l]* copen
autocmd QuickfixCmdPost l* lopen
0447名無しさん@お腹いっぱい。
2009/06/28(日) 22:47:26:nmap ホニャララ
と書くのと
nmap ホニャララ
と書くのと、2通りあるみたいなんですが、違いはなんでしょうか。
0448名無しさん@お腹いっぱい。
2009/06/29(月) 15:49:54: はexのコマンド
0449名無しさん@お腹いっぱい。
2009/06/29(月) 20:16:550450名無しさん@お腹いっぱい。
2009/07/03(金) 18:52:53これをCTRLを押さずに候補移動できないでしょうか?
CTRL押しっぱなしだと指が痛くなります。
0451名無しさん@お腹いっぱい。
2009/07/03(金) 19:08:46autocomplpop
■ このスレッドは過去ログ倉庫に格納されています