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

Vim Part16

レス数が950を超えています。1000を超えると書き込みができなくなります。
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あたり。

0872名無しさん@お腹いっぱい。2009/10/20(火) 23:34:39
マジレスするとユーザ環境変数を変えるなら再起動はいらない。
システム環境変数は再ログインが必要。
システムの再起動はいらないよ。
ってかここunix板でしたね。すみません。
0873vim入門中2009/10/20(火) 23:41:58
Emacsを少し使っていた者です。
Vim使いの文化を少しでも知りたいと思い質問させていただきます。
Vim使いの方も、モードの切り替えに面倒さを感じたりするのでしょうか?
面倒に感じない方は、理由を教えていただけると、嬉しいのです!
面倒に感じている方も、どのようにカバーしているのか教えていただけると尚嬉しいです。
0874vim入門中2009/10/20(火) 23:45:42
モードの切り替えとは
編集モード、挿入モードの切り替えです。
0875名無しさん@お腹いっぱい。2009/10/20(火) 23:55:40
日本語の入力時などIMEの切り替えを伴う時は面倒だと思うけど
英文字だけなら俺はそう思わない。
要は慣れでしょ。暫く使ってみれば?面倒ならEmacsに戻ればいいじゃん。

ところで編集モードってなんだ?ノーマルモードのことかしら
0876名無しさん@お腹いっぱい。2009/10/21(水) 00:29:07
モードの切り替えによる操作手順は確かに増えるが、モードがあることによるメリットもある
・たとえば行の中ほどにカーソルがあり、下に新しい行を追加し、そのまま入力を行いたい場合、oを押すだけでよい
・たとえばカーソルの下にある1文字を削除する場合はxを押すが、モードの切り替えはない

Vimを使い続ける人はこのメリットの方が、モード切替の手間よりも大きいと感じてるんでしょう。
0877名無しさん@お腹いっぱい。2009/10/21(水) 00:48:43
日本語の入力がある時は辛いお。。。
0878名無しさん@お腹いっぱい。2009/10/21(水) 01:23:47
i 押して「い」となったり、イライラ
0879vim入門中2009/10/21(水) 01:26:23
>>876
なるほど、Vimは小さく単純なコマンドが割り当てられているぶん
新しいコマンドを割り当てなくても、組み合わせ、または単純なコマンドのまま
使うことによって、特殊な状況でも簡潔に対応できるのですね。
小さいツールを組み合わせるというviの文化が反映されていそうですね。
たしかに、モードの切り替えをなくして、キーバインドだけでは、再現できなさそうですね。

ただ、日本語入力がある時は手間がさらに増えてしまうみたいなので
日本人にとってはプログラミングツールって位置付けになりそうですね。

少しだけVimの文化を知れたような気がします^^
みなさん、ありがとうございました!
0880名無しさん@お腹いっぱい。2009/10/21(水) 02:20:00
>>879
どういたしまして。

ちなみに、キーバインドでどうにかしたのがEmacsenといってもいいかも知れない。
モード切替の手間を無くした代りにCtrlだったりAltだったりの修飾キーの使用頻度が高まった。

あと、一応、IME切り替えの煩雑さを解消するためのパッチもあるよ。
0881名無しさん@お腹いっぱい。2009/10/21(水) 16:15:43
>>873
便利に感じるって言うプラスの発想はないんだな
0882名無しさん@お腹いっぱい。2009/10/21(水) 21:07:52
vimでの日本語入力に関する質問です。

普通の日本語は問題なく入力できるのですが、
■や↓などの記号を入力するとバグります。
どうバグるかというと■や↓の記号がある行だけ記号以降の文字がガタガタになります。
ガタガタになるだけでそのまま保存すると記号も保存されていますが、編集時に記号以降の編集が難しいです。

特殊な例かもしれませんが、ご教示いただければと思います。

環境:
OS     :cent os 5
vim    :version 7.0.237
文字コード : UTF-8
0883名無しさん@お腹いっぱい。2009/10/21(水) 21:52:04
charset=iso-2022-jpでutf-8のボディや、
ヘッダにコントロールコードを混入したメールに迷惑してるんだが、
送信者はお前だろう。
0884名無しさん@お腹いっぱい。2009/10/21(水) 22:43:35
>>882
それってvimの問題なの?
端末上で△なんかの文字幅が正しく扱えないならAmbiguous Widthの問題だと思うけど
違ったらゴメンね
0885名無しさん@お腹いっぱい。2009/10/21(水) 23:23:54
皆はESCキーのめんどくささはどうやって解決してるの?
俺は定番の変換キーにESCキーを割り当て
0886名無しさん@お腹いっぱい。2009/10/21(水) 23:25:39
Ctrl-[
0887名無しさん@お腹いっぱい。2009/10/21(水) 23:29:36
Ctrl-[
0888名無しさん@お腹いっぱい。2009/10/21(水) 23:30:34
Ctrl+C
0889名無しさん@お腹いっぱい。2009/10/21(水) 23:40:20
質問なんですが、特定のディレクトリ以下の複数のファイルでvimの
検索・置換を一気に行ないたいという場合に使えるpluginとかはありますか?
0890名無しさん@お腹いっぱい。2009/10/21(水) 23:42:45
>>885
キーボードをHHKにする
0891名無しさん@お腹いっぱい。2009/10/21(水) 23:58:01
>>889
:vimgrep
0892名無しさん@お腹いっぱい。2009/10/22(木) 00:08:24
>>891
ぬお!標準機能であったんですね…。ありがとうございます!
0893名無しさん@お腹いっぱい。2009/10/22(木) 00:44:44
imap <C-j> <C-\><C-n>
vmap <C-j> <C-\><C-n>

ヴィジュアルモードからでもC-jで戻れる。ほとんどホームポジションのまま。
0894名無しさん@お腹いっぱい。2009/10/22(木) 01:53:51
>>885
Ctrl-[

うちの変換キーはWindowsキーに割り当てられている
0895名無しさん@お腹いっぱい。2009/10/22(木) 01:55:18
んで、Windowsキーとhjklの同時押しをカーソルキーにマップしている
0896名無しさん@お腹いっぱい。2009/10/22(木) 03:05:13
ウガンダに募金したら現地の子供たちがお手紙を書いて送ってくれたりしないんですか
0897名無しさん@お腹いっぱい。2009/10/22(木) 03:16:27
>>896
見返りを求めるなよw
その手紙代でどれだけの命が救われることやら・・・
0898名無しさん@お腹いっぱい。2009/10/22(木) 03:31:00
If you sponsor a child you can communicate with it. You will get a picture and information about the child's situation, write letters to the child and expect something in return. Let us know if you don't want to communicate with the child.
0899名無しさん@お腹いっぱい。2009/10/22(木) 03:39:38
そだったのか。
募金しようかなぁという気持ちになった。
0900名無しさん@お腹いっぱい。2009/10/23(金) 08:55:21
>>882
set ambiwidth=double
0901名無しさん@お腹いっぱい。2009/10/23(金) 23:01:23
exモードで行の先頭に文字列を入れるのはどう書けばいいでしょうか?
複数行をコメントアウトしたいのです
0902名無しさん@お腹いっぱい。2009/10/23(金) 23:55:31
カーソル行を置き換える
:call setline(".", substitute(getline("."), "^", "# ", "g"))

"# "が置き換えたい文字列なのでお好きなように料理してください
0903名無しさん@お腹いっぱい。2009/10/24(土) 00:05:39
あ。複数行か。ってか
:.,+10s/^/# /g
の方が楽やね^−;
0904名無しさん@お腹いっぱい。2009/10/24(土) 00:38:43
>>901
複数行コメントアウトはいつもこんな感じ。

Ctrl+v
jjjjjj...
Shift+i
#
Esc
0905名無しさん@お腹いっぱい。2009/10/24(土) 00:41:04
qaI#<ESC>jq@5a
0906名無しさん@お腹いっぱい。2009/10/24(土) 00:42:35
qaI#<ESC>jq5@a
のミス
0907名無しさん@お腹いっぱい。2009/10/24(土) 00:50:53
>>904
これは知らん買った。最期のESC押した時点で#が挿入されるんだな。
0908名無しさん@お腹いっぱい。2009/10/24(土) 01:57:31
随分前に入れたEnhancedCommentify.vimを使ってないことに気づいた。
理由は>>904のやり方に慣れきっていたからであり、なんか残念。
0909名無しさん@お腹いっぱい。2009/10/24(土) 10:04:56
>>904
こんなやりかたあったんですね。

コメント解除は
Ctrl+v
jjj...
x
でできるのか。
コメントアウトのときに#とスペース1個入れていた場合も
Ctrl+v
jjj...
l
x
でいいんですね。

ちなみに私はコメントアウトは
v
jjj...
:'<,'>s/^/#
(:と押すと'<,'>は自動で入力されます。最後の/はタイプ量削減のためわざと省略)
で、コメント解除は
v
jjj...
:'<,'>s/#
(:と押すと'<,'>は自動で入力されます。s/#だけなのはタイプ量削減のため)
とやっていました。
0910名無しさん@お腹いっぱい。2009/10/24(土) 11:17:31
>>903
試しに、範囲指定を現在行からマイナス方向で指定したら、Vim にやさしく諭されたよ。
:h E493 が該当するようだ。Vim は頭がいいな。
0911名無しさん@お腹いっぱい。2009/10/24(土) 11:58:08
visualモードという選択肢がありましたね気づきませんでした
ctrlとかshiftの同時押しってキーボード見ないとできないし指がつりそうになります
0912名無しさん@お腹いっぱい。2009/10/24(土) 12:14:31
>>911
見ないとできないっていうのは・・・まぁ、慣れだよね。
つりそうになるっていうのは、Vimとは話題が外れるが
モディファイアを使ってない別のキーに置き換えればいいさ。
よくある話だけれど。
shiftとctrlを変換、無変換キーに割り当てるとかね。
0913名無しさん@お腹いっぱい。2009/10/24(土) 15:14:00
GUIなgVimですと、ノーマル/編集状態のカーソル色をそれぞれ任意のものに
変更可能ですが、Vim(vimrc)だと変更方法がわかりません。よろしくご教示ください。
0914名無しさん@お腹いっぱい。2009/10/24(土) 18:31:53
>ctrlとかshiftの同時押しってキーボード見ないとできないし指がつりそうになります
両手でやりゃええやん。
0915名無しさん@お腹いっぱい。2009/10/24(土) 19:04:31
ターミナルのVimから:spとか:vsして分かれたウィンドウの大きさを
ドラッグで変えるにはどうすればいいですか?
端末はgnome-terminalです
0916名無しさん@お腹いっぱい。2009/10/24(土) 19:18:18
>>915
それはちと厳しいなぁ。
0917名無しさん@お腹いっぱい。2009/10/24(土) 19:24:19
対応してるターミナルを使う
0918名無しさん@お腹いっぱい。2009/10/24(土) 20:18:35
>>916,917
今のままでは厳しいですか・・
気にせずに頑張ります
0919名無しさん@お腹いっぱい。2009/10/24(土) 23:44:47
みんなバッファ管理どうしてる?
0920名無しさん@お腹いっぱい。2009/10/25(日) 00:23:24
バッファ管理?どういうこと?例を出してくれ
0921名無しさん@お腹いっぱい。2009/10/25(日) 10:17:40
>>920
バッファの表示や切り替えとかバッファまわりで、
どんなカスタマイズしてるか気になったもんで。。
例えば、project.vim使ってるとか。。
0922名無しさん@お腹いっぱい。2009/10/25(日) 10:35:43
" <F2>で前のウィンドウに移動し、最大化
nnoremap <F2> <C-W>W<C-W>_
" <F3>で次のウィンドウに移動し、最大化
nnoremap <F3> <C-W>w<C-W>_

うちはproject.vimとこれぐらい。
S-F2(F3)でタブ切り替えも設定したけど、あんまり使ってない。
0923名無しさん@お腹いっぱい。2009/10/25(日) 15:38:32
バッファ使わずタブしか使ってない
0924名無しさん@お腹いっぱい。2009/10/25(日) 15:56:09
逆にタブ使わずバッファしか使ってないな
nnoremap <Space> :bn<CR>
nnoremap <BS> :bp<CR>
nnoremap ,, :ls<CR>
nnoremap ,d :<C-u>bd<CR>
nnoremap <Leader><Space> :<C-u>up<CR>

バッファを一斉に消すとかするときはqbuf.vim使ってるよ
g:qb_hotkey = ",<LT>"
にしておく
0925vimrcで困っています。2009/10/26(月) 22:10:45
ホームディレクトリでなくローカルなディレクトリに
vimrcを置いて読み込ませる方法ってありますか?

一つの環境を複数人で使う必要がありホームディレクトリに
vimrcを置けません。
0926名無しさん@お腹いっぱい。2009/10/26(月) 22:12:22
-u
0927名無しさん@お腹いっぱい。2009/10/26(月) 22:24:22
>>915
gnome-terminalて新しめの端末なのにマウスの入力受け付けないんだ?
俺はいまだにktermだけど何の設定もせずにマウスでドラッグ出来るよ

>>925
$HOME/.vimrc に set exrc だけ書いとく
0928名無しさん@お腹いっぱい。2009/10/27(火) 07:59:42
ktermで「ターミナルのVimから:spとか:vsして分かれたウィンドウの大きさをドラッグで変える」具体的な方法を教えてけろ。
0929名無しさん@お腹いっぱい。2009/10/27(火) 10:20:20
>>849が知ってるんじゃね
0930名無しさん@お腹いっぱい。2009/10/27(火) 10:38:27
>>928
:help mouse
0931名無しさん@お腹いっぱい。2009/10/27(火) 10:50:19
うちのgnome-terminalはマウスでドラッグできてるな
0932名無しさん@お腹いっぱい。2009/10/27(火) 19:40:55
俺が中三のとき風呂から上がってソファでくつろいでいたのだが
脚を開いた状態だったので
中一だった妹は「ど〜ん」とか言いながら握ってきた
俺は「バカタレ」と言いながらもパジャマのズボンとパンツを下ろして
モロに見せつけてやった
妹は凍りついたようになりながらも
みるみる勃起する俺のチンコを凝視してた
0933名無しさん@お腹いっぱい。2009/10/27(火) 20:22:48
わっふるわ(ry
0934名無しさん@お腹いっぱい。2009/10/27(火) 22:50:40
https://shop.canonical.com/images/UBN11011.jpg
0935名無しさん@お腹いっぱい。2009/10/28(水) 00:06:13
>>930
おー。
:set mouse=a とかすると、マウスでxterm上のvimの境界線(?)を動かせるんだ。
感動した。
0936名無しさん@お腹いっぱい。2009/10/28(水) 01:11:42
Vimの便利さをアピールするには、まずどの機能を紹介しますか?
0937名無しさん@お腹いっぱい。2009/10/28(水) 01:33:33
hjkl
0938名無しさん@お腹いっぱい。2009/10/28(水) 01:36:24
>>937 えー。ただのカーソル移動じゃんかぁ。
0939名無しさん@お腹いっぱい。2009/10/28(水) 01:39:11
>>936
テキストオブジェクトじゃね?
俺はこれで「Vim便利過ぎる」と思った。
0940名無しさん@お腹いっぱい。2009/10/28(水) 04:24:54
別にアピールしなくていいよ
0941名無しさん@お腹いっぱい。2009/10/28(水) 05:15:02
>>939 ふむふむ、なるほど。確かに ci" とか便利ですな。
0942名無しさん@お腹いっぱい。2009/10/28(水) 15:28:55
そこで surround.vim ですよ?
0943名無しさん@お腹いっぱい。2009/10/29(木) 15:23:54
Linuxで<C-Tab>がmapできないんですけど仕様ですか?
windowsならできるんですが
0944名無しさん@お腹いっぱい。2009/10/29(木) 16:23:46
Linuxでっていう問題じゃなく
リモートからログインしてるからとかじゃないの。
0945名無しさん@お腹いっぱい。2009/10/29(木) 19:02:08
>>944
ああ、なるほどそういうことですか
ありがとうございます
0946名無しさん@お腹いっぱい。2009/11/06(金) 10:39:57
XP + Cygwin でソースから vim72 をインストールの試行錯誤をしているものです。
環境的にはソフトウェア板にするべき質問かもですが、Unix板のほうが趣旨に合っていると考え、こちらでさせてもらうことにしました。
日常、Windows XP, Cygwin, rxvt でbash などのコマンドを呼び出して使っています。以下のようにしました。

$ ./configure --prefix=/usr/local --with-features=big --enable-multibyte --enable-gui
$ make
$ make install

vimを起動して、:version すると、
-term_clipboard
-clipboard
のままだったのですが、この二つのオプションを有効にするには、作業前に何をすればいいでしょうか?
やりたいことは、クリップボード関連を強化したいのです。

feature.h をいじるといいようですが、これはエディタでいじっても大丈夫なのでしょうか?
よろしくおねがいします。
0947名無しさん@お腹いっぱい。2009/11/06(金) 22:17:20
configureのパラメータにないの?
--enable-clipboard
とかそういうそれっぽい感じのやつ
09489462009/11/07(土) 09:31:45
947 さん、レスありがとうございます。

$ ./configure --help | less

で見てもそれらしいのはありませんでした。
Unixのにはそういったパラメータはあるのですか?やはりCygwinのは違うということでしょうか。
引き続き情報お待ちしておりますので、おわかりの方よろしくお願いいたします。
0949名無しさん@お腹いっぱい。2009/11/07(土) 10:24:24
>>946
クリップボード単体をどうこうするオプションはないよ。
他のオプションとコンパイル環境によって自動的に有効になる。
基本的に*nix環境なら基本的にXの使用が必須。
そういう訳だからfeature.hを弄って無理矢理有効にしても十中八九コンパイル通らない。

クリップボードの読み書きなら/dev/clipboardなどを使えばできるし、
"*Yなどと普通にクリップボードを使うだけならfakeclipをインストールしておけば良いよ。
09509462009/11/07(土) 11:20:46
>>949さん、レスありがとうございます。
オプションはないのですね、わかりました。
ご教示いただいた方法を試してみたいと思います。
皆さんありがとうございました。
0951名無しさん@お腹いっぱい。2009/11/07(土) 16:10:13
http://groups.google.com/group/vim_dev/web/vim-patches
13. Console cygwin Vim using win32 clipboard
Site: http://groups.google.com/group/vim_dev/browse_thread/thread/5293258c705aefbc
Allows the cygwin version of Vim, compiled without GUI, to work with the Win32 clipboard
in the same way as the native GUI Win32 version.

cygwinは使ってないからしらないけどこれとか。
逆にGUI付きならcygwinでもクリップボード使えるってことなのかな?
0952名無しさん@お腹いっぱい。2009/11/07(土) 16:16:59
http://vimwiki.net/?tips%2F51
こんなのも有るね
09539462009/11/07(土) 19:14:51
>>951 さん、レスありがとうございます。
パッチあててインストールしましたところ、:version にて

+clipboard
-term_clipboard

と有効になり、双方向でのクリップボードのやり取りが可能になりました。

先ほど教えていただいた fakeclip.vim スクリプトでの方法も確かによかったのですが、
キーマップの扱いなどで違和感を覚えていました。
やはり、パッチあてる方法が、慣れた操作で自然に行えるので、今後はこれでいこうと思います。

>>952さんも情報ありがとうございました。
みなさんご協力感謝いたします。自分は厨房なのですが(リアルで中一ですw)厨房の質問にも
丁寧に答えてくれたUnixの人たちの優しさに触れ感激しております。
本当にありがとうございました。
またなにかありました時にはこちらでお世話になるかもしれませんが、そのときはよろしくお願いいたします。
それでは失礼いたします。長文ですいませんでした。
0954名無しさん@お腹いっぱい。2009/11/07(土) 19:19:48
追伸ですが、configure は、 --with-features=huge に変更して行ったことも報告しておきます。連レスすいません。
0955名無しさん@お腹いっぱい。2009/11/08(日) 23:22:59
edは標準のエディターである。
edを使っては、pdf・epub・html等の標準形式で保存されたデータを編集できると、有能なソフトウェアーとしてあらゆる出版会社で注目を浴びている。
JASRACの会長に聞いたところ、「われらの会員の歌詞の一部をedでアクセスするようにすれば、それらの出回しが明らかに減りました」と語った。
鳩山首相もedに関して、「妻に紹介してもらいました。まだ慣れていませんけど、21世紀の政治をめざし、迅速に自治体にedの使用を取り入れる方針です。^[^[wq q ? ? n m ,」と仰った。
0956名無しさん@お腹いっぱい。2009/11/08(日) 23:49:26
時代はスクリーンエディタ
0957名無しさん@お腹いっぱい。2009/11/09(月) 01:17:09
今時ガチでラインエディタ使ってる人って。。。
0958名無しさん@お腹いっぱい。2009/11/09(月) 05:15:08
久しぶりにemacsつこたら:wして困る。。。
0959名無しさん@お腹いっぱい。2009/11/09(月) 06:21:20
自分の _vimrc を見ていたら、こんなのが残っていた。
nnoremap <C-x><C-s> :w<CR>

一時期、使ったけど、いまはすっかり忘れて、
使わなくなったものが色々あるな。
0960名無しさん@お腹いっぱい。2009/11/10(火) 20:41:33
初心者なんだけど、vimの操作の覚えがわるくて、kaoriyaに付いてきた日本語チュートリアルもう3週目だよ
0961名無しさん@お腹いっぱい。2009/11/11(水) 01:28:56
チュートリアルは雰囲気をつかむだけでおーけー。
あとは実践しながら体で覚える。
0962名無しさん@お腹いっぱい。2009/11/12(木) 22:10:18
0/$は使うな、I/Aを使えと聞きますが、行の真中くらいにカーソルがあって、その行全体を削除したいときはどうすればいいですか?
今は I esc D としてますが、これだと行がインデントされてた場合行頭に空白が残ります。
やりたいことは 0 D です。
0963名無しさん@お腹いっぱい。2009/11/12(木) 22:27:07
>>962
>0/$は使うな、I/Aを使えと聞きますが
誰に聞いたのか知らないけど0Dでok
またはdd (これだと行自体が削除されるけどね)
0964名無しさん@お腹いっぱい。2009/11/12(木) 22:49:44
cc^[とか。
0965名無しさん@お腹いっぱい。2009/11/12(木) 23:41:19
>>962
ddも使わずvi使っとったんか?
0966名無しさん@お腹いっぱい。2009/11/13(金) 01:20:08
後出しで偉そうに質問読み違えてレスとか恥ずかしいな
0967名無しさん@お腹いっぱい。2009/11/13(金) 02:02:07
>>966
Oも使わずvi使っとったんか。
0968名無しさん@お腹いっぱい。2009/11/13(金) 02:04:50
>>964
cc知りませんでした、ありがとうございます。

>0/$は使うな、I/Aを使えと聞きますが
どこだかは忘れましたが、どっかのブログです。そもそも0/$を押さずに済むようなキーが用意されているからとか、
そもそも使わなくていいように作られている、とか書いてました。
私が0/$を嫌うのも、ただ単に押しづらいからです。
0969名無しさん@お腹いっぱい。2009/11/13(金) 03:27:24
ddOだとキャレット行以降が(行が詰まるので)たいていすべて一度再描画される
0Dだと描画はキャレット行のみ、かつ2ストロークで済む

みたいな違いはあるのかな
自分はddO使うけど、0Dのが効率的なのかもしれん
0970名無しさん@お腹いっぱい。2009/11/13(金) 18:44:23
>>968
0i とか $a とかやってるんだったら、I とか A を使え、ってことじゃなくって?
0971名無しさん@お腹いっぱい。2009/11/13(金) 19:53:55
>>970
ナイス考察!多分そういうことだろうね
レス数が950を超えています。1000を超えると書き込みができなくなります。