Vim Part21
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。
2012/07/16(月) 01:09:05.70http://www.vim.org/
前スレ
Vim Part20
http://toro.2ch.net/test/read.cgi/unix/1322212163/
関連情報は>>2-6あたり。
0897名無しさん@お腹いっぱい。
2013/02/13(水) 00:28:28.53いえ、BufReadの方でした。ありえないとはわかっていたんですが
augroup中のイベントに引っかかった時グループ内のすべての動作が
行われるのかと…
>>896 の例えでわかった感じがするので、もう一度読み返して
来ようかと思います。まだいまいちピンときてないですが…
autocmd!を用いる際にaugroupが多用されるのは
グループ内のautocmdのみ初期化するため、ということでしょうか
0898名無しさん@お腹いっぱい。
2013/02/13(水) 00:58:53.77augroup を指定せずに定義されたautocmdもデフォルトのグループに属しています
なので、augroup内であろうと無かろうと、autocmd BufRead は、BufRead時にしか実行されません
> autocmd!を用いる際にaugroupが多用されるのは
> グループ内のautocmdのみ初期化するため、ということでしょうか
そうです。vim起動直後に、:autocmd を実行すると
BufLeave
*.xml set updatetime&
filetypedetect BufNewFile
?\+.orig exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r"))
{event} となっているものと
{group} {event} となっているものがあると思います
次に、:autocmd! を実行すると、デフォルトのaugroupに属するautocmdが削除されるので、
もう一度 :autocmd の結果を確認すると、上の例で定義されていた BufLeaveは消えているはずです
同様に、:autocmd! filetypedetect とすると、デフォルトで定義されているファイルタイプ検出がすべて削除されます
0899名無しさん@お腹いっぱい。
2013/02/13(水) 19:15:19.63亀かつ憶測ですが
入力候補一覧から、続けて入力するものを絞り込みたいのなら
neocomplcacheとuniteを連携させる
<plug>(neocomplcache_start_unite_complete)を使えば、
補完一覧を別ウィンドウで表示し
選択や更に絞り込むというのができるとおもいます
0900名無しさん@お腹いっぱい。
2013/02/14(木) 19:39:36.88上書き保存を「:wp」じゃなく「:x」ってやってる人って少ないよね。
0901名無しさん@お腹いっぱい。
2013/02/14(木) 19:54:28.53俺はそれ結構つかうよ
ZZは使わないけど
0902名無しさん@お腹いっぱい。
2013/02/14(木) 20:05:01.17コード修正してるときは保存してすぐ閉じるってことが少ないから:wq自体あんまり使わないかも。
関連するようなしないような、で言えば、:saveasは結構使う
0903名無しさん@お腹いっぱい。
2013/02/14(木) 20:16:32.00updateするっていう意識があるから。
0904名無しさん@お腹いっぱい。
2013/02/15(金) 01:30:14.55でも:xって良さそうだな、明日ヘルプでみてみるか
0905名無しさん@お腹いっぱい。
2013/02/15(金) 02:10:33.260906名無しさん@お腹いっぱい。
2013/02/15(金) 08:14:28.610907名無しさん@お腹いっぱい。
2013/02/15(金) 11:48:02.37nnoremap <Space>w :<C-u>write<Cr> とか
0908名無しさん@お腹いっぱい。
2013/02/15(金) 18:26:25.68別に:up :q って続けてやるよっていうならとめないけど
0909名無しさん@お腹いっぱい。
2013/02/16(土) 01:00:51.84せやな
:write と :update ならわからいでもない
0910名無しさん@お腹いっぱい。
2013/02/16(土) 23:38:02.95知らなかった。
ZZと:xは完全に同じではないから、使い分けることもある。
0911名無しさん@お腹いっぱい。
2013/02/17(日) 18:07:28.120912名無しさん@お腹いっぱい。
2013/02/17(日) 18:57:12.07(xsession も1回抜けたり落としたりしたかも。uim も上げなおした気がする)
↓で落ちた。
BadWindow (invalid Window parameter)
Vim: X のエラーを検出しました
X接続が切れて visual が X から離れるのは普通に起こるんだけど、
あんまりこの落ち方した記憶がない。
もとの xterm がないときに何かの条件で起きるんだと思うけど、
vim が xterm とかにするX要求って何があるんだっけ?
ほぼ起きないならあまり気にしないけど、
条件が判っているなら気には留めておく。
0913名無しさん@お腹いっぱい。
2013/02/17(日) 23:19:01.90ヘルプによると、ZZは「保存して終了」という意味では :xと同じ
:xは'hidden'オプションについて言及されてるけど、ZZはされてないからもしかしたらそこの挙動が違う…かもしれん
0914名無しさん@お腹いっぱい。
2013/02/18(月) 00:39:14.66単純にCpasキーが押された時にCtrlと同じ動きをするという設定をVim側でできないんでしょうか?
0915名無しさん@お腹いっぱい。
2013/02/18(月) 01:01:24.47一応スレ知やけど
ttp://stackoverflow.com/questions/2176532/how-to-map-caps-lock-key-in-vim
WindowsならAutoHotkey使え。というのが回答かもしらんな
0916名無しさん@お腹いっぱい。
2013/02/18(月) 01:06:09.660917名無しさん@お腹いっぱい。
2013/02/18(月) 02:02:07.93ありがとうございます。とりあえず2つ調べてみてよさそうな方入れてみたいと思います
0918名無しさん@お腹いっぱい。
2013/02/20(水) 06:34:24.11cmigemo の vimigemo.txt に
> つまりのアーカイブに含まれる全てのファイルとディレクトリを$VIMへコピーすれば
> インストールは完了します。
と、書かれてるけど、解凍して出来た runtime/plugin/migemo.vim を $VIM にコピーしても
migemo.vim が認識されない・・・
これって、私だけに発生している症状でしょうか?
みなさんは正常に認識されてます?
0919名無しさん@お腹いっぱい。
2013/02/20(水) 07:45:47.05pluginならばやはり
$VIMではなくpluginフォルダに置くべきではないか
0920名無しさん@お腹いっぱい。
2013/02/20(水) 20:03:23.06dllだかexeをgvimと同じところにおいてないとか
キー割り当てを勘違いしてるとか
デバッグすれば分かるはず
help debug-scriptあたりで確か見てみろ
0921918
2013/02/21(木) 07:16:37.04>>919
pluginフォルダは NeoBundle で管理してて、$HOME/.vim 以下に割り当て、正常に動作してるんだけど、
memige.vim だけを $HOEM/vimfiles の下に置くのはなんか嫌なので
>>920
$HOME/vimfiles/plugin に配置するとちゃんと動作するので他のファイルの配置自体は間違ってないみたいです
0922名無しさん@お腹いっぱい。
2013/02/21(木) 10:51:45.77NeoBundleみたいの使ってるなら、$HOME/.vim/plugin が &rtp に入ってないだけちゃう?
:call setline(1, split(&rtp, ',')) とかで確認してみ
スレ知やけど、Windowsのデフォルトは $HOME/vimfiles やから
.vimrcで :set rtp+=$HOME/.vim したらいけるんちゃうかと
0923名無しさん@お腹いっぱい。
2013/02/21(木) 21:29:46.01patch なしで migemo incsearch できる?誰もやってないか…
0924名無しさん@お腹いっぱい。
2013/02/21(木) 23:04:33.93耳毛.vim...
0925名無しさん@お腹いっぱい。
2013/02/22(金) 00:18:20.690926918
2013/02/23(土) 10:48:57.28レスありがとう。
結局、neobundle で
{'type' : 'nosync', 'base' : '~/.vim/bundle/manual'}
として、~/.vim/bundle にまとめることにしました。
ここって、UNIX板だったね、板違いでごめんなさい。
VIM全般と勘違いしてました。
>>923
migemo.vim はそのままでインクリメントサーチできますよ。
>>924
>>925
ごめんtypo
なんだ耳毛ってw
0927名無しさん@お腹いっぱい。
2013/02/23(土) 17:17:18.96どうやって incsearch ?
migemo.vim の中みても <leader>mi くらいしか見当たらない。
一応 https://github.com/koron/cmigemo/blob/master/tools/migemo.vim 見たけど。
0928名無しさん@お腹いっぱい。
2013/02/23(土) 17:39:20.22しかも普通の検索に統合されてる
/に統合するスクリプトをつくってくれってことかも
パッチジャ内と無理かもしれないが
0929名無しさん@お腹いっぱい。
2013/02/26(火) 09:51:35.57置き換え(入れ替え)る方法はないでしょうか?
0930名無しさん@お腹いっぱい。
2013/02/26(火) 10:37:19.06B>A
C>B
この流れでどうよw
0931名無しさん@お腹いっぱい。
2013/02/26(火) 19:46:10.84でもこれだと汎用的なものはムズイよ
0932名無しさん@お腹いっぱい。
2013/02/26(火) 20:05:56.900933名無しさん@お腹いっぱい。
2013/03/02(土) 16:56:47.790934名無しさん@お腹いっぱい。
2013/03/02(土) 21:06:36.11それならviとともに生きたほうがいいと思わないか?
0935名無しさん@お腹いっぱい。
2013/03/04(月) 01:09:03.02picoちゃんやで
0936名無しさん@お腹いっぱい。
2013/03/06(水) 01:26:06.57多重安藤が無いなんて…メモ帳?なにそれ美味しいの?
ヴィーアイエムと読むかヴィムと読むかでその世代が別れてるとおもう。
0937名無しさん@お腹いっぱい。
2013/03/06(水) 06:45:54.29打ち直した方が速いよ
0938名無しさん@お腹いっぱい。
2013/03/06(水) 07:51:07.010939名無しさん@お腹いっぱい。
2013/03/06(水) 07:56:32.53どこまで戻せばいいかわからなくなったり
戻しすぎたりするからねー
0940名無しさん@お腹いっぱい。
2013/03/06(水) 11:57:01.60redoのキーアサインってVimっぽくないよね
0941名無しさん@お腹いっぱい。
2013/03/06(水) 12:18:59.380942名無しさん@お腹いっぱい。
2013/03/06(水) 14:00:00.260943名無しさん@お腹いっぱい。
2013/03/10(日) 02:24:00.420944名無しさん@お腹いっぱい。
2013/03/10(日) 06:31:31.41:h :put
0945名無しさん@お腹いっぱい。
2013/03/10(日) 06:32:49.68:put =$HOME
0946名無しさん@お腹いっぱい。
2013/03/10(日) 14:42:59.01組み込み関数について知った辺りからvimにできないことって
あるのかよって思い始めた
0947名無しさん@お腹いっぱい。
2013/03/12(火) 15:49:42.520948名無しさん@お腹いっぱい。
2013/03/12(火) 16:40:22.560949名無しさん@お腹いっぱい。
2013/03/12(火) 17:37:50.32ペーストした範囲だけインデントを合わせたいです。
0950名無しさん@お腹いっぱい。
2013/03/12(火) 18:14:01.22nnoremap <expr> gp '`[' . strpart(getregtype(), 0, 1) . '`]'
2chだと空白行がおかしい処理されるので念のため。
http://vim.wikia.com/wiki/Selecting_your_pasted_text
それで範囲囲んで=はどうだ?
0951名無しさん@お腹いっぱい。
2013/03/12(火) 18:14:54.27vpgv=
ではだめ?
0952名無しさん@お腹いっぱい。
2013/03/13(水) 02:59:51.80でできるよ
0953名無しさん@お腹いっぱい。
2013/03/13(水) 05:52:16.03にしても =`] ってちょっとかわいいな
0954名無しさん@お腹いっぱい。
2013/03/13(水) 12:31:11.65vnoremap <silent> p p=`]
にしときました。
いくつか回答が出たってことは特にみなさん設定してない?
0955名無しさん@お腹いっぱい。
2013/03/13(水) 13:07:18.190956名無しさん@お腹いっぱい。
2013/03/13(水) 22:27:59.680957名無しさん@お腹いっぱい。
2013/03/21(木) 09:36:32.67:s/before/after
で変換しますが、ここでbeforeやafterを入力するときに入力補完をしたいです。
どうすればいいんでしょうか。
0958名無しさん@お腹いっぱい。
2013/03/21(木) 10:19:25.940959名無しさん@お腹いっぱい。
2013/03/21(木) 12:29:00.14cibもしくはci(だと()内にいないとダメなのは皆さん気にならない?
0960名無しさん@お腹いっぱい。
2013/03/21(木) 14:23:07.78テキストに入力されている文字です
例えば
「floccinaucinihilipilification」がエディタ上に入力されていたとして
:s/floccinaucinihilipilification/hogehoge/
ってやる場合に「floccinaucinihilipilification」と入力するのが大変なので
0961名無しさん@お腹いっぱい。
2013/03/21(木) 15:53:52.74:h c_ctrl-r_ctrl-f
CTRL-R CTRL-F
CTRL-R CTRL-P
CTRL-R CTRL-W
CTRL-R CTRL-A
について書いてあるけど、キーの押しやすさから、
私は CTRL-R CTRL-F ばかり使っている。
左手一本で ctrl押したまま ra でいいわけだし。
0962名無しさん@お腹いっぱい。
2013/03/21(木) 15:54:33.79× 左手一本で ctrl押したまま ra でいいわけだし。
○ 左手一本で ctrl押したまま rf でいいわけだし。
0963名無しさん@お腹いっぱい。
2013/03/22(金) 00:01:51.260964名無しさん@お腹いっぱい。
2013/03/22(金) 13:59:34.78お前ら、最強のテキストエディターは「Mery」で異論はないよな?
http://hayabusa3.2ch.net/test/read.cgi/news/1363874572/
137 :ハイイロネコ(チベット自治区):2013/03/22(金) 04:16:40.42 ID:so/V8PBf0
vimがイイって言われ使ったけど、使いずれーよ。特に初心者は。
頑張ってなれようとしたけど、少し触らなくなると、忘れる。
もう変なのすすめるなよ。
0965名無しさん@お腹いっぱい。
2013/03/22(金) 15:08:20.39作文にでも使おうとしたんじゃないのか、そいつ
0966名無しさん@お腹いっぱい。
2013/03/22(金) 16:42:02.30命からがらたどりついた砂漠のオアシスみたいなもの
0967名無しさん@お腹いっぱい。
2013/03/22(金) 16:56:33.16これが合理的だと感じられる人ならすぐ使えるようになると思う
0968名無しさん@お腹いっぱい。
2013/03/22(金) 18:03:42.36中級者くらいにならないとvimのありがたみはわからないから仕方ない
0969名無しさん@お腹いっぱい。
2013/03/22(金) 18:12:03.34test = ('z'~'x')
sample = ('A'~'B'+'C')
この3行のそれぞれの最初の括弧の前にfuncをつけ、例えば最初の行なら
a = func('y'~'x')
と、括弧の位置が行ごとにずれている場合でもビジュアルモードで3つ一気に修正したいのですが、これは可能でしょうか?
0970名無しさん@お腹いっぱい。
2013/03/22(金) 18:13:32.200971名無しさん@お腹いっぱい。
2013/03/22(金) 19:30:12.65の形だな。
0972名無しさん@お腹いっぱい。
2013/03/23(土) 18:06:31.98無事にうまく修正できました。
0973名無しさん@お腹いっぱい。
2013/03/26(火) 01:50:40.82プログラミングでなくても、頻繁に単語や文章を入れ替えたりしながら書くタイプには向いているエディタだと思う。
使う人を選ぶとこはあるのかなという気はする。
0974名無しさん@お腹いっぱい。
2013/03/26(火) 05:34:33.02一応migemoみたいなのはあるんだけど
0975名無しさん@お腹いっぱい。
2013/03/26(火) 07:28:32.04改良するプラグインはあるけどやはり直感的じゃない
英語ならいけるんだろうね
0976名無しさん@お腹いっぱい。
2013/03/26(火) 07:54:01.68A. Vim は このような わかち書き の 文章 の 入力 には 向いていますが、
通常 の 日本語 の 入力 には 向いて いません。
0977名無しさん@お腹いっぱい。
2013/03/26(火) 14:30:36.93ありがとうございます。
あとカーソル位置に依存しない補完はないのでしょうか。
インサートモードのctrl+pのような機能をexモードで使いたいので。
0978名無しさん@お腹いっぱい。
2013/03/26(火) 14:42:45.91command-line mode はいかん?
デフォルトでは、コマンドモードで <C-f>
0979名無しさん@お腹いっぱい。
2013/03/26(火) 23:05:33.95ソースのdiffのチェックをするときにvim -R - に差分食わせた後、:vspで縦3分割位して一気に見えるようにしたいのですが、先頭をずらしつつscrollbindまでしたあと、画面単位にページ移動させるにはどうすればよいのでしょうか?
デフォルトのままだと、高さ分しか移動しないので、分割したウィンドウが右から左へ移動するような感じになってしまいます。
0980名無しさん@お腹いっぱい。
2013/03/26(火) 23:44:06.64縦三分割で60行*3で180行一気にみるぜ!ということ?
私の知らない所で設定があるのかもしれないけどわからん
こんなんどうよ?
function! AwesomeScroll()
execute '0wincmd w'
let h = winheight(0)
let lnum = (h * winnr('$')) + 1
execute 'normal! ' . lnum . 'G'
endfunction
nnoremap <Down> :call AwesomeScroll()<Cr>z<Cr>
0981名無しさん@お腹いっぱい。
2013/03/27(水) 17:10:52.31内容的にdiffであることは関係なさそうな気がしてるんだけど、
3<C-f>じゃだめ?
0982名無しさん@お腹いっぱい。
2013/03/27(水) 17:20:27.17概ね良好だと思う
0983名無しさん@お腹いっぱい。
2013/03/27(水) 22:27:26.71そうです。scrollbindってすぐ壊れてしまうので、編集時には向かないけどみるだけならいいかなと。。。
教えてもらったものはうまくいかなかったのですが、参考にしていろいろしてみたら
:vsp +execute 'normal!'.(line('w$')+1).'Gzt'と
:execute 'normal!'.(line('w0')+(winheight(0)*winnr('$'))).'Gzt'
とすると、いい感じになりました
後者をnnoremapで<C-f>とかに割り当てるにはどうすればよいのでしょうか?
nnoremapに割り当てるとなんか編集モードになってしまいます。
あと、できればかけ算するのではなくウィンドウ指定してline('w$')をとりたいのですがそういうはできますか?
この場合、いちばん右下の行番号がほしいです。
0984名無しさん@お腹いっぱい。
2013/03/27(水) 22:36:22.91たしかにdiffは関係ないです。
ただタグジャンプとかするとscrollbindってずれてしまうみたいなので、みるだけの代表としてdiffといいました
普通に<C-f>だと折り返しがあるとずれちゃうのですよー
nowrapすればよいだけの話なのですが、なまじいけそうなだけになんか負けた気がして、いろいろやってます。
0985名無しさん@お腹いっぱい。
2013/03/27(水) 23:13:39.42gj のような感じで、ページ単位でスクロールできればよさそうっぽいけど、ないのかな
0986名無しさん@お腹いっぱい。
2013/03/28(木) 00:51:03.47いったんそのウィンドウをアクティブにして line('w$')するしかないんじゃないかな
0987名無しさん@お腹いっぱい。
2013/03/28(木) 19:12:50.42はじめてのスクリプトで調べながらちょこちょことやってみましたが、 けっこういろんなことできるんですね。
途中で目的を忘れて、明らかにオーバースペックになってしまいましたが、できました。
結局、scrollbindなんて使わない方が無難だったという。。。
全部は書き込めなかったので、抜粋
function! NormalizeView()
execute b:start_nr.'wincmd w'
let l:target_bufnr=winbufnr(0)
let l:end_nr = b:start_nr
let l:lnum=line('w$')+1
wincmd w
while winnr() != l:end_nr
if winbufnr(0) == l:target_bufnr
execute 'normal!'.l:lnum.'zt'
let l:lnum=line('w$')+1
endif
wincmd w
endwhile
unlet l:lnum
endfunction
command! PgUp let lnum=line('w0')-1 | :execute(b:start_nr.'wincmd w')| :execute('normal!'.lnum.'zb') | :call NormalizeView()
command! PgDown let lnum=line('w$')+1 | :execute(b:start_nr.'wincmd w')| :execute('normal!'.lnum.'zt') | :call NormalizeView()
nnoremap <buffer> <silent> <C-f> :PgDown<CR>
0988名無しさん@お腹いっぱい。
2013/03/28(木) 19:18:23.48b:start_nrは 関数の中で設定しています。
コメントいただいた皆さんありがとうございました。
連投失礼しました。
レス数が950を超えています。1000を超えると書き込みができなくなります。