トップページunix
1001コメント285KB

Vim Part16

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2009/01/16(金) 00:56:51
Vim 6以降に関する話題、Part16です。
http://www.vim.org/

前スレ
Vim Part15
http://pc11.2ch.net/test/read.cgi/unix/1202050038/

関連情報は>>2-8あたり。

0011名無しさん@お腹いっぱい。2009/01/16(金) 20:08:00
スレ数 Vim*2<Emacs になる日も近いな。
0012名無しさん@お腹いっぱい。2009/01/16(金) 20:13:04
今の通信環境だと、Emacs, Meadow のダウンロードも楽だ。
日本において、Vim ユーザーは、細々と続いていくだろうが、
大きく増えることはないだろうな。
0013名無しさん@お腹いっぱい。2009/01/16(金) 23:32:01
>>11
vimはソフトウェア板と重複だけど
emacsはxyzzyもあるな
0014名無しさん@お腹いっぱい。2009/01/16(金) 23:37:05
でもEmacs関連のスレの流れを見てると
活発でうらやましい反面、「たかがエディタを使うのにそこまで?」的な話も多く微妙な気も
いや、活発で語るべきことがあるのは本当にうらやましいんだけどね

>>12
昔は巨大すぎてFD回覧なんてありましたなぁ>Emacs
それでも今のパッケージからすると小さなものなんだけど
0015名無しさん@お腹いっぱい。2009/01/17(土) 09:43:58
各行の末尾に連続してタブがあったら1つにするために

%s/\t+$/\t/g

とやったのですが、「パターンが見つかりません。」と言われダメでした。
何が問題なんでしょう??
0016152009/01/17(土) 09:55:31
>>15
解決できました

%s/\t\+$/\t/g

でした
0017名無しさん@お腹いっぱい。2009/01/17(土) 10:15:41
- vim-users.jp(日本の Vim ユーザのためのハブサイト)
http://vim-users.jp/

適当なところにこれ追加きぼう
0018名無しさん@お腹いっぱい。2009/01/18(日) 05:51:43
>>10 >>17
すまんな。どうやら、>5の最新テンプレが機能していないようなんだが、これはなおせないのかね
0019名無しさん@お腹いっぱい。2009/01/18(日) 20:26:07
次スレで。
0020名無しさん@お腹いっぱい。2009/01/19(月) 22:27:11
EmacsにはYaTeXがあるので仕方なくEmacsを使おうと思っていたら
実はVimにもVim-LaTeXがあるじゃん!と言う事を発見した新参者です。
GVim+Uim-anthy+Vim-LaTeXの環境で日本語を入力するとバグっちゃう
んですが、ご利用のみなさんはどのように回避しておられますでしょうか?
よろしくお願いします。
0021名無しさん@お腹いっぱい。2009/01/20(火) 05:04:10
>>20
Windowsに移る
0022名無しさん@お腹いっぱい。2009/01/20(火) 12:45:29
>>21
早速のレスありがとうございます。
確かにそれもアリなんですが、Unixは必要ですし、GVimじゃなくて
Vimだったら動くので、全く出来ないということはないんですが、
何か動かす方法はないのかと思いまして。
0023名無しさん@お腹いっぱい。2009/01/20(火) 22:17:09
>>22
> Vimだったら動く
情報後出しイクナイ
0024名無しさん@お腹いっぱい。2009/01/21(水) 16:15:49
分からんなら分からんで黙ってろ。
ユーザーがこんなんだからEmacsに遅れを取るんだよ…
0025名無しさん@お腹いっぱい。2009/01/21(水) 16:19:14
Vimユーザの質は世界一ィィィィィィィィ!!
0026名無しさん@お腹いっぱい。2009/01/21(水) 16:37:11
どんなバグが起こったかもわからんし、エラーメッセージすら不明
他の日本語環境で再現するのかしないのかも不明
おまけにOSもGVimのバージョンも不明
この情報だけで回答できるほど自分はエスパーじゃないです
0027名無しさん@お腹いっぱい。2009/01/21(水) 16:43:31
ついでに書いとくと
「Uim-anthy Vim-LaTeX」でググって出てくる解決法くらいは試したんだろうな?
と聞いておきたい
0028名無しさん@お腹いっぱい。2009/01/21(水) 17:52:50
挿入モードでバックスペースを Ctrl + h にも割りあてるにはどうしたら
できますか?
0029名無しさん@お腹いっぱい。2009/01/21(水) 19:31:38
遠く離れた行の文字列をヤンクしてるときにうっかりddとかやっちゃってレジスタ上書きされたときヤンク履歴をさかのぼるとかそういう機能はないのでしょうか・・・?
0030名無しさん@お腹いっぱい。2009/01/21(水) 19:47:16
pu.u.u.u. とやってみ
0031名無しさん@お腹いっぱい。2009/01/21(水) 20:42:15
>>29
yankring.vim とかそういうのはナシ?
"うっかり"のために、そんなん入れるのもアレか。。。
0032名無しさん@お腹いっぱい。2009/01/21(水) 20:42:20
>>29
yankring.vim お勧め
0033名無しさん@お腹いっぱい。2009/01/21(水) 21:10:45
>>29
"0
0034名無しさん@お腹いっぱい。2009/01/21(水) 21:14:32
>>31-32
おおおお!こんな便利なものがー!
>>30>>33
期待した動作をしてくれません・・・
0035名無しさん@お腹いっぱい。2009/01/21(水) 23:05:23
:dispでヤンクバッファの履歴やレジスタの内容を直接確認して、
"1p するとか、:let @a=@1 で退避なんかはダメ?
0036名無しさん@お腹いっぱい。2009/01/22(木) 14:40:05
>>20
on-the-spot方式だと問題が起きるので、それ以外の方式で我慢
0037292009/01/22(木) 20:15:22
yankring入れてみました。便利は便利なんですが、一度ペーストしないと履歴に残らないんですね。。。
明日にでも>>35を試してみます
0038名無しさん@お腹いっぱい。2009/01/24(土) 13:41:39
Vim7(?)から搭載されたテキストブロックの選択とか()や{}内の選択機能ってめっちゃ便利だ。
リリースされた当時って話題になったのかな?
ついにエディタ戦争が終わったと思ったよ。
0039名無しさん@お腹いっぱい。2009/01/24(土) 13:45:52
お前は誰と戦ってたんだよ
0040名無しさん@お腹いっぱい。2009/01/24(土) 14:08:18
まぁエディタ戦争は、既に「デフォルトで搭載されてる機能」の問題じゃないよね
たぶん終わらないんじゃない?永遠に
俺は戦う気もないから、戦争したい人は頑張ってくれw
0041名無しさん@お腹いっぱい。2009/01/24(土) 18:50:23
emacsも同じようなのあるんでないの?
いい意味でいたちごっこだと思う
んで、他のIDEがあとからのんびりついてくる感じ
0042222009/01/24(土) 23:27:04
>>23 >>26-27
失礼しました。かなり雑な書き方でした。
詳細を書くと、UnixじゃないですがUbuntu 8.04, Vinelinux(バージョン忘れた)で発症、
Gvimのバージョンは7.1と7.2、IMはSCIM, UIM, ATOK for Linuxいずれの場合も
VIM-Latex(Latex-Suite)を利用し、プラグインがロードされた状態(Texファイル編集中)です。
SCIMではanthy&PRIME, UIMではanthyの環境を利用しました。
逆に症状が出ないのはWindows上KaoriYa製Vim、IMはMS-IMEとSCIMで日本語変換前の
文字をクライアントに表示させず、別ウィンドウ(?)に表示させた場合です。
症状の詳細は挿入モードで日本語で文字を入力した瞬間にIMEが切れてしまい、日本語入力
できません。エラーメッセージなどはないです。
恐らく、GVim側に変換前の日本語としてデータが送られてくるとVim-Latexの何らかの機能と
干渉してしまい、IMが落ちてしまう。
ちなみに解決法は探してますがあまりパッとしたのは見つかっていません。
vim(コンソール版)使うとかWindows版使うとかしかまだ見つかってません。
あと干渉していると思われるVim-Latexの機能を切るというのもありましたが、それは…。
よろしくお願いします。長文失礼しました。
0043名無しさん@お腹いっぱい。2009/01/24(土) 23:48:02
Vim-Latex使ってないので適当だけど
ググって出てくる「渉していると思われるVim-Latexの機能を切る」みたいなページのオチで
「どうやら scim の設定でチェックを一つはずしてリロードするだけで,
上記のような面倒なことを一切せずに日本語が打てるということを知りました…」
みたいなこと書いてあるんだけど(肝心のどのチェックか書いてないがw)
その辺の設定じゃダメなのかね
0044222009/01/25(日) 00:51:11
>>43
それは「SCIMで未変換文字列を入力対象クライアントのウィンドウに表示」
という設定なのですが、結論から言うとそれで出来ます。
が、非常に見にくい(たまに入力ウィンドウが変な場所に出る)のと、SCIMは
Vimとの相性が悪い(IMが自動で切れない)ので、使いたくないんです。
わがまま言ってすみません。
0045名無しさん@お腹いっぱい。2009/01/25(日) 02:25:32
IMにそういう設定がないならvimのソースをいじる以外にない。
簡単に済ますなら適当にどっかで gtk_im_context_set_use_preedit(context, FALSE); を設定するだけ。

vim-latexが動かないのはvimのon-the-spotの実装が「未確定文字列をバッファに挿入するようなキー入力を擬似的に発生させる形でそれを表示する」という方式だから。
例えば「日本」と入力した場合、次のような入力をしたのと同じになる。
  に<BS>にほ<BS><BS>にほん<BS><BS><BS>日本<BS><BS>日本
未確定文字列を表示するときはそれを挿入し、消すときは<BS>を入力してる。
これは q で入力を記録してみると確認できる。qa -> 入力 -> q -> :echo @a
で、この擬似的な入力に対してキーマップが効くというのが問題の原因で、例えばローマ字入力で「か」と入力すると、最初に「k」と入力した時点で、そのkに対してマップが展開されてしまう。
そんなわけでimapが使い物にならないのでvim-latexは動かない。

問題点は他にもあるしバギーなので激しく日本語入力するならgtk2のgvimはあんまりおすすめしない。

ちなみにwindowsのgvimはover-the-spotで表示してるから問題はでない。
0046名無しさん@お腹いっぱい。2009/01/25(日) 10:29:56
ちょい質問です。:bnでバッファ切り替えて:bpで戻ってくると
カーソルの桁位置が行の先頭になってしまいます。

桁の位置も覚えておくようにできないでしょうか?
ちなみにvim7.1です。



0047462009/01/25(日) 13:59:47
自己解決できました。
オプション「hidden」をONにしていたのが原因でした。
0048名無しさん@お腹いっぱい。2009/01/29(木) 00:31:38
tabを視覚的に表示する方法ってありますか?
空白とタブの区別が見た目わからないので、区別できるようにしたいんです。
0049名無しさん@お腹いっぱい。2009/01/29(木) 00:57:24
>>48
:set list
0050名無しさん@お腹いっぱい。2009/01/29(木) 01:00:47
:help 'list'
:help 'listchars'
0051名無しさん@お腹いっぱい。2009/01/29(木) 01:01:11
>>48
ついでに
:set listchars=tab:>-,trail:-,eol:<,nbsp:%
あたりもお勧め
0052名無しさん@お腹いっぱい。2009/01/29(木) 10:11:32
最近、project.vim使い始めて超便利なんですが、
左側のプロジェクト管理のウィンドウ(バッファ?)の中でだけ、キーマップを変更する方法ってあるでしょうか。

今はproject.vim を書き換えて
nnoremap <buffer> ...
とかやってるんですが、できたらproject.vim自体はいじらずに.vimrcで設定したいんです・・・

#スクリプトのマニュアル見ても、なんかsidとかsnrとかちんぷんかんでお手上げ・・・。
0053名無しさん@お腹いっぱい。2009/01/29(木) 12:26:08
project.vimを使ってないからわからんが、いくつかのイベントにフックして作業する

■project.vimの管理ウィンドウかバッファかを開いたときにファイルタイプが設定されてるなら
.vimfiles/ftplugin/そのファイルタイプ.vim
とつくってそこでmapを定義する

■バッファ名が与えられてるなら、vimrcに
autocmd BufEnter そのバッファ名 call s:Initialize()
function s:Initialize()
if !exists("b:plugin_vim_initialized")
  let b:plugin_vim_initialized=1
  noremap <buffer>...
 endif
endfunction

と書いてみたが<sid>がわからんならやめたほうがいいかもしれないな
0054名無しさん@お腹いっぱい。2009/01/29(木) 22:19:07
Vimって、挿入モードで上下左右に移動するキーって
矢印使うか挿入モード抜けるか位しかないの?
0055名無しさん@お腹いっぱい。2009/01/29(木) 22:25:49
うん。
0056名無しさん@お腹いっぱい。2009/01/29(木) 22:50:44
>>54
ctrl-o すれば1回だけhjklとかが使えるよ
0057名無しさん@お腹いっぱい。2009/01/29(木) 22:57:56
>>55-56
そうか、ありがとう。
ctrl-oもアリなんだけど、複数回押す場合にはやっぱ挿入から
抜けちゃうか矢印に手移す方が楽かな。
0058名無しさん@お腹いっぱい。2009/01/29(木) 23:46:13
そんなあなたに

noremap! <C-h> <Left>
noremap! <C-l> <Right>
noremap! <C-k> <Up>
noremap! <C-j> <Down>

インサートモードでctrl押しながらjkhlで移動できるよ。
vim使いから物凄い勢いでdisられそうだけど。
0059名無しさん@お腹いっぱい。2009/01/29(木) 23:52:14
delete inner sentence
0060名無しさん@お腹いっぱい。2009/01/29(木) 23:52:21
>>58
inoremap! の間違いだよね。w
0061名無しさん@お腹いっぱい。2009/01/30(金) 00:30:35
>>58
それいいかも。気づかんかったわ。
ただ、C-hが微妙に干渉するんだよな。
C-hだけ残しといて、DOSぽい仕様にするとかもありかw
0062名無しさん@お腹いっぱい。2009/01/30(金) 01:08:28
俺は挿入モードではemacs流のキーバウンドにするという変態的なことをしているw
0063名無しさん@お腹いっぱい。2009/01/30(金) 01:13:44
変態だー(AA略
0064名無しさん@お腹いっぱい。2009/01/30(金) 01:26:01
俺はemacsのC-fとかC-bって押しづらいから嫌いなんだよね。
普通英大文字打つときは反対の手でShiftキー押すじゃん?
右のCtrlは遠いし場所覚えづらい。Enterとスワップするとかありえんし。
それに1つの事実行するのにC-*を複数回押すってのも気に食わん。
やっぱみんなそう思うからViを選ぶんだよな?
0065名無しさん@お腹いっぱい。2009/01/30(金) 01:27:43
> 右のCtrlは遠い

そこでHHKですよ
0066名無しさん@お腹いっぱい。2009/01/30(金) 01:35:28
>>65
右Ctrlとかねぇじゃんw
もしかして無刻印で色々Ctrlに割り当てるとか?

等とキーボードのせいにしてると他所で使えなくなるのでいくない。
そう考えると初期設定で十分な操作性を誇るviはやっぱいいな。
0067名無しさん@お腹いっぱい。2009/01/30(金) 01:47:27
HHKは右Ctrl付けてくれれば文句ないんだが
仕方ないから右Altが右Ctrlになってるよ
0068名無しさん@お腹いっぱい。2009/01/31(土) 13:45:52
shをインデントする方法教えてください
0069名無しさん@お腹いっぱい。2009/01/31(土) 14:34:41
:set ft=sh
:filetype indent on
0070名無しさん@お腹いっぱい。2009/01/31(土) 16:41:25
mapとかimapとかnoremapとかの解説してるところ教えてください
0071名無しさん@お腹いっぱい。2009/01/31(土) 19:00:46
vimrcのmapの設定方法で

Ctrl+Shift+k

<C-S-K>
でしょうか?

なぜか<C-S-K>だとCtrl+kにも反応しちゃうんですが。。





0072712009/01/31(土) 21:57:04
ちなみに
 map <C-tab>
 map <C-S-tab>
だとちゃんとマッピングできるけど
 map <C-K>
 map <C-S-K>
だと<C-S-K>も<C-K>と同じマッピングになってしまう。


0073名無しさん@お腹いっぱい。2009/01/31(土) 22:18:27
Kじゃなくてkじゃね
0074712009/01/31(土) 22:44:24
>>73
それはやってみたんだけどダメだったんだ
0075名無しさん@お腹いっぱい。2009/01/31(土) 23:15:05
:h ctrl-{char}
0076712009/01/31(土) 23:35:56
>>75
もしかしてShiftキー使っちゃダメ??まじで?
0077名無しさん@お腹いっぱい。2009/02/06(金) 01:19:36
ヤンクした履歴ってどっかに残ってないですか?
0078名無しさん@お腹いっぱい。2009/02/06(金) 03:19:07
>>77
:reg
0079名無しさん@お腹いっぱい。2009/02/07(土) 13:00:31
jvimで記録したマクロを保存して、jvimを次に起動したときにも使えるようにしたいんですが、どのようにすればいいでしょうか?

jvimで記録したマクロを保存することはできますか?
0080名無しさん@お腹いっぱい。2009/02/08(日) 21:46:49
クラスやそのメンバ(変数|関数)を一覧表示してジャンプできるようなプラグインってない?
taglist.vim, tagexplorer.vim は C なら問題ないけど、 C++ だと違うクラスのメンバが
ごっちゃになって表示されるので辛い。
0081名無しさん@お腹いっぱい。2009/02/08(日) 22:50:04
ああ ctags --extra=+q か。失礼。
0082名無しさん@お腹いっぱい。2009/02/09(月) 12:53:48
vim7.2でCTRL-Aでインクリメントできなくね?
0083名無しさん@お腹いっぱい。2009/02/09(月) 13:29:52
>>82
_vimrcの3行目に
source $VIMRUNTIME/mswin.vim
って書いてあるとか
0084名無しさん@お腹いっぱい。2009/02/09(月) 14:00:21
>>83
そうでした。 ありがとうございます。
0085名無しさん@お腹いっぱい。2009/02/09(月) 19:42:43
ubuntuでgvimを使って日本語を入力しようとすると画面がちらついて
大変なことになる
0086名無しさん@お腹いっぱい。2009/02/09(月) 22:25:22
あっそ
0087名無しさん@お腹いっぱい。2009/02/09(月) 22:29:05
大変だね
俺がubuntuでgvim使ってもちらつかなくて良かった
0088名無しさん@お腹いっぱい。2009/02/09(月) 22:34:44
俺も Ubuntu で GVim 使って日本語を入力しても画面はちらつかないな…
0089名無しさん@お腹いっぱい。2009/02/09(月) 23:09:45
vimと同じ設定でviewを使いたいんだけど
aliasでvim -Rとかにするしかないっすか?
てかviewってなんなんですか?こいつにも設定ファイルあるんですか?
0090名無しさん@お腹いっぱい。2009/02/09(月) 23:13:13
viewはvim -Rと一緒じゃなかったっけ
0091名無しさん@お腹いっぱい。2009/02/10(火) 01:42:32
>>90
うちのfedoraこうなってるけど・・

[ana@coppola tmp]$ls -l /bin/vi /bin/view /usr/bin/vim
-rwxr-xr-x 1 root root 693496 2008-12-02 01:13 /bin/vi
lrwxrwxrwx 1 root root 2 2009-02-10 08:08 /bin/view -> vi
-rwxr-xr-x 1 root root 1807112 2008-12-02 01:13 /usr/bin/vim
[ana@coppola tmp]$

alias vi='vim'

viewとして起動されたときに読む設定ファイルってのがあるんでしょか?
0092名無しさん@お腹いっぱい。2009/02/10(火) 01:52:07
>>79
保存はできないけど、.jvimrcにmapでキーの入力内容を登録できるよ
0093名無しさん@お腹いっぱい。2009/02/10(火) 02:49:02
>>89
> vimと同じ設定でviewを使いたいんだけど
そうはなってないってことかな。

>>91
> viewとして起動されたときに読む設定ファイルってのがあるんでしょか?
特にないと思ってた。
aliasなのにviとviewで挙動が違うのはなぜ?ということなら、何という名前で起動されたかを
元に処理を変えてるから。
0094名無しさん@お腹いっぱい。2009/02/10(火) 11:59:22
>lrwxrwxrwx 1 root root 2 2009-02-10 08:08 /bin/view -> vi
alias vi='vim'

これってどっちが起動されるんだ?

/bin/vi
/usr/bin/vim
0095名無しさん@お腹いっぱい。2009/02/10(火) 13:08:59
viと打てばvimだろうし、viewと打てばviだろう
0096名無しさん@お腹いっぱい。2009/02/10(火) 14:08:44
vim file1 file2 file3
みたいに開いて、
:q
とやると、他に編集すべきファイルが2個あります、と出るんですが、もう一回:qすると、すべてのファイルが閉じてしまいます。
現在アクティブのファイルだけ閉じたいんですが、どうすればよいのでしょうか??
ご教示いただきたく m(_ _)m
0097名無しさん@お腹いっぱい。2009/02/10(火) 14:11:46
>>96
:bd
でいいかと
0098962009/02/10(火) 14:32:56
>>97
おお!ありがとうございます!
0099名無しさん@お腹いっぱい。2009/02/10(火) 15:11:56
:n でも。
0100名無しさん@お腹いっぱい。2009/02/12(木) 01:42:50
Cソースとかの関数をリストできる機能があったと思いますが
なんでしたっけ?
0101名無しさん@お腹いっぱい。2009/02/12(木) 02:46:49
ctrl-x ctrl-k で辞書開けなかったっけ?
0102名無しさん@お腹いっぱい。2009/02/12(木) 10:35:56
taglist.vim じゃない?
0103名無しさん@お腹いっぱい。2009/02/12(木) 23:56:27
shのsyntaxが微妙すぎるんですがどうにかならんですか?
0104名無しさん@お腹いっぱい。2009/02/12(木) 23:59:54
何が不満なのか知らないがシンタックスファイル改造してみたら
0105名無しさん@お腹いっぱい。2009/02/15(日) 01:02:50
Rubyの補完で、gets()で得たオブジェクトのomni補完しようとすると戻ってこなくなるんだけど解決策ない?
str = gets();
str.
ここでCTRL-X CTRL-OするとSearching...のまま戻ってこない。
0106名無しさん@お腹いっぱい。2009/02/15(日) 17:36:08
>>105
str = gets
str.
なら大丈夫みたい。
str = gets();
の場合でも、「パターンは見つかりませんでした」になる。

OS: Ubuntu 8.10
Vim: 7.1 (patch 1-314)
rubycomplete.vim: 0.8
0107名無しさん@お腹いっぱい。2009/02/15(日) 23:08:09
>>106
str = getsで通りました。
どうも末尾で挙動が違うようで、
str = gets #正常
str = gets; #フリーズ
str = gets(); #フリーズ
str = gets() #Pattern not found
セミコロンが良くないぽい。
0108名無しさん@お腹いっぱい。2009/02/15(日) 23:26:07
いつのまにか、前編集してたところを忘れて同じファイル開いても一番上にいっちゃう設定になってたんですが、
どうすれば戻りますか?
0109名無しさん@お腹いっぱい。2009/02/16(月) 01:18:47
>>108
.vimrc, _vimrc に以下を書く


"Move To Last Position: from vimrc_example.vim
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif
0110名無しさん@お腹いっぱい。2009/02/16(月) 14:27:32
質問させてください。

vimで複数のファイルを開いているとき、:bnとかで次の画面に切り替えると、切り替える前のファイルの編集履歴が消滅してしまうようなのです。
つまり、Uボタンで最初の状態まで戻せなくなります。
また、ファイルを切り替える際、必ず保存を要求されるのですが、これも不便に感じてます。
どなたか解決方法ご存知でしたら教えていただけると幸いですm(_ _)m
■ このスレッドは過去ログ倉庫に格納されています