トップページ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あたり。

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
0111名無しさん@お腹いっぱい。2009/02/16(月) 16:17:00
>>110
CTRL-W n
とかのwindowコマンドを使うのはどう?
:help CTRL-W

CTRL-W _
CTRL-W =
CTRL-W w
CTRL-W q
これでなんとかなる。(俺はなんとかしてる)
0112名無しさん@お腹いっぱい。2009/02/16(月) 18:47:17
>>110
set hidden
0113名無しさん@お腹いっぱい。2009/02/17(火) 08:18:09
CTRL Pでの補完で対象候補が縦にリストされるのを見かけたんですがどうやるんですか?
0114名無しさん@お腹いっぱい。2009/02/17(火) 11:52:03
>>113
:h i_CTRL-P
:h cpt
参照
01151102009/02/17(火) 20:32:30
ありがとうございます!m(_ _)m
0116名無しさん@お腹いっぱい。2009/02/18(水) 01:27:26
>>114
これみてもわかりません・・
0117名無しさん@お腹いっぱい。2009/02/18(水) 19:05:33
<C-e>を押したときに10行下を表示する動作をさせるため、vimrcに
nmap <C-e> 10<C-e>
という風に書くと<C-e>を押したときに無限ループに入ってしまうのですが
どうやったら解決できるかご教示願えませんか
0118名無しさん@お腹いっぱい。2009/02/18(水) 19:07:52
つnoremap
01191172009/02/18(水) 20:25:26
>>118
ありがとうございます
0120名無しさん@お腹いっぱい。2009/02/20(金) 02:14:24
HTML ファイル編集時 class=" まで入力された状態で omni 補完を実行すると

function htmlcomplete#CompleteTags の処理中にエラーが検出されました:
行 304:
E121: 未定義の変数です: classlines

とエラーが出るんだけど、このエラーどうすれば解決する?
環境は Fedora10, vim-enhanced-7.2.060-1.fc10.i386
0121名無しさん@お腹いっぱい。2009/02/20(金) 16:17:31
>>120
同じOS&vimだけどエラー出なかったよ。
エラーの行番号304から察するに
/usr/share/vim/vim72/autoload/htmlcomplete.vim のverが自分のと違うっぽい。
うちのは
  " Last Change:  2006 Oct 19
01221202009/02/20(金) 23:35:04
>>121
こちらの htmlcomplete.vim も " Last Change: 2006 Oct 19
vimscript は読めないけれどちょっと中身を見てみると
どうやら classlines は css ファイルから補完候補を探してる模様
css ファイル用意するとエラーが出なくなり、問題なく omni 補完出来るようになりました
0123名無しさん@お腹いっぱい。2009/02/22(日) 16:43:49
バックアップファイルとスワップファイルを指定してもファイルが作れないんだよね。
E510:Can't make backup file (add ! to override)
ってでる。それぞれの対応フォルダには書き込み権限もあたえてるんだけど。
フォルダ指定をしないと、編集ファイルと同じ場所にバックアップファイルは作るみたい。

どこがまちがえてる?


vim cocoa 7.1
ttp://sourceforge.jp/forum/forum.php?forum_id=14613
osx 10.5.6

set swapfile
set dictionary = ~/.vim/swp
set backup
set writebackup
set backupdir = ~/.vim/bak
0124名無しさん@お腹いっぱい。2009/02/22(日) 16:55:05
知らんけど、俺ならこう書く。
set backupdir=~/.vim/bak/
0125名無しさん@お腹いっぱい。2009/02/22(日) 17:23:18
winにて、例えばVimGrepを行う場合

 grep "vim" C:/Program Files/gvim/*txt

のようにデフォルトのファイル名補完では半角スペース入りフォルダがある場合、そのままgrepできません
""で囲むか省略名PROGRA~1を使えば可能なのですが、vim側の設定でうまく展開できないでしょうか?
01261232009/02/22(日) 17:41:54
>124
thx
でもだめですた。
0127名無しさん@お腹いっぱい。2009/02/22(日) 17:46:26
なぜこっちのスレできくのかわからないが、どういう挙動になるのが理想なんだ?
一つしかファイル名を受け付けない状況だとファイル名の空白を自動認識するけど
二つ以上受け付ける場合は囲むかエスケープしないとだめ、という仕様だった気がする
勝手に囲んだりエスケープされたりすると具合が悪いケースが出てくるんじゃない?
0128名無しさん@お腹いっぱい。2009/02/23(月) 00:46:40
>>123
関係ないと思うけど、
set dictionary は
set directory のtypoだよね?
0129名無しさん@お腹いっぱい。2009/02/25(水) 23:47:40
挿入モードで打ち損じたときバックスペースとかカーソルキーとか遠いし、コマンドモードに戻るのもイヤなんですけど、いい解決方法はないでしょうか?
0130名無しさん@お腹いっぱい。2009/02/25(水) 23:52:12
>>129
>>62
0131名無しさん@お腹いっぱい。2009/02/25(水) 23:59:55
>>129
君以外のviユーザは全員[Control]+[H]
0132名無しさん@お腹いっぱい。2009/02/26(木) 00:04:00
打ち損じなければいいと思うよ
0133名無しさん@お腹いっぱい。2009/02/26(木) 08:04:31
>>129
>挿入モードで打ち損じたとき
コマンドモードに戻すんだ。
そもそも挿入モードで訂正するのが、断じておかしい。
vimが許しても、俺は許さない。
0134名無しさん@お腹いっぱい。2009/02/26(木) 12:37:01
打ち損じは後でまとめて直すようにしてる
0135名無しさん@お腹いっぱい。2009/02/27(金) 13:03:21
>>125
grepprg呼んでる?
:vimgrepならいけるはず
0136名無しさん@お腹いっぱい。2009/02/28(土) 00:03:07
>>135
set grepprg=internal
と設定すれば :grep は :vimgrep と同じになる。

:vimgrep でもフォルダ名/ファイル名のスペースは '\' でエスケープしないとエラーになる。
0137名無しさん@お腹いっぱい。2009/02/28(土) 02:26:07
>>136
\エスケープしてもコンソールに渡す時にスペースがデリミタと見なされるっぽい
vimgrepはきちんと解釈してくれる
0138名無しさん@お腹いっぱい。2009/02/28(土) 02:59:20
vimgrepはターゲットファイルが存在しないときにQuick fix窓をクリアしてくれないのが困る(*‘ω‘ *)=3
0139名無しさん@お腹いっぱい。2009/02/28(土) 14:07:23
そういうときこそgrepを直接使うんじゃなくて、プラグインを使えばいいんじゃないか。
0140名無しさん@お腹いっぱい。2009/03/01(日) 02:58:43
今まで劣化grepだと思ってたが再帰とかできるのか
0141名無しさん@お腹いっぱい。2009/03/01(日) 05:23:11
劣化の反対語って何ですか?
0142名無しさん@お腹いっぱい。2009/03/01(日) 07:18:35
進化
0143名無しさん@お腹いっぱい。2009/03/01(日) 09:25:31
>>140
vimでgrep
ttp://d.hatena.ne.jp/h_east/20090205
ttp://d.hatena.ne.jp/h_east/20090208
0144名無しさん@お腹いっぱい。2009/03/01(日) 15:30:20
vimgrepはいちいちfind/xargsと組み合わせなくても再帰+ファイル名指定が同時にできる
0145名無しさん@お腹いっぱい。2009/03/01(日) 16:22:07
>>142
退化 <=> 進化
0146名無しさん@お腹いっぱい。2009/03/01(日) 20:36:49
劣化に反対語などない
0147名無しさん@お腹いっぱい。2009/03/01(日) 21:48:08
優化。
そんな言葉があるか知らんけど。
0148名無しさん@お腹いっぱい。2009/03/01(日) 22:21:41
>>144
grepもそうだよ。GNU grep単体でも -r オプションある。
0149名無しさん@お腹いっぱい。2009/03/01(日) 22:27:22
-r はディレクトリ指定だべ
0150名無しさん@お腹いっぱい。2009/03/02(月) 00:24:14
再帰じゃろ
0151名無しさん@お腹いっぱい。2009/03/02(月) 01:27:12
Vim 7.2-20090301香り屋版きた
0152名無しさん@お腹いっぱい。2009/03/02(月) 03:02:23
>>150
再帰開始ディレクトリの指定だよ・・・
0153名無しさん@お腹いっぱい。2009/03/02(月) 03:26:41
ちょっと言葉がおかしいな

vimgrepだと他コマンドと組み合わせなくても
vimgrep "aho" **/hoge*/hoge.txt
(カレントディレクトリから再帰を開始して、"/hoge*/hoge.txt"のディレクトリ配置になってるファイルを検索)
みたいに細かいとこまで指定できる

gnuの方は--includeでファイル名指定できるけどディレクトリ配置までは指定するの無理
0154名無しさん@お腹いっぱい。2009/03/02(月) 06:58:20
> vimgrep "aho" **/hoge*/hoge.txt
これzsh使ってれば同じ事できるし再帰も関係無い
ワイルドカードの展開はコマンドじゃなくてシェルの役目
■ このスレッドは過去ログ倉庫に格納されています