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

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使ってれば同じ事できるし再帰も関係無い
ワイルドカードの展開はコマンドじゃなくてシェルの役目
0155名無しさん@お腹いっぱい。2009/03/02(月) 09:55:02
>>153
判り易い説明ありがとうございました。

>>154
zshではそうだと思います。
でも、vimgrep はvimが持ってる機能ですからシェルは関係ないと思われます。
0156名無しさん@お腹いっぱい。2009/03/02(月) 19:28:57
vimが動けばどの環境だろうと動くしね
0157名無しさん@お腹いっぱい。2009/03/03(火) 04:51:46
当たり前だけどvimバッファに読み込んでるんで文字コード自動認識してくれる
0158名無しさん@お腹いっぱい。2009/03/07(土) 04:23:31
:e も**で再帰効くのね
0159名無しさん@お腹いっぱい。2009/03/07(土) 15:28:11
> Vim 7.2-20090301香り屋版きた

↓このバグ、7.2でも直ってないなぁ…

 240 名前: 名無しさん@お腹いっぱい。 [sage] 投稿日: 2008/05/08(木) 02:48:45
 最近、Kaoriya Windows版vim6.4から7.1.278に変えたのだがバグっぽい気になる点が。
 
 foldlevel=0の状態で
 {{{
   カーソルはこのfoldの中でも外でも良い
 }}}
 こんな感じでfoldを開いた状態にする。
 # この例はfdm=marker
 
 ここで :e してファイルを再読み込みすると、foldが勝手に閉じられてしまう。
 vim6.4では閉じなかった。
 undoバッファを消すために、しばしば :e を使うので気になる。
 
 また、fdm=manualの場合、zcで手動で作ったfoldが :e で忘れられてしまうみたいだ。
 :eの後に先程zcで閉じた所に移動して再度zcでfoldを閉じようとしても E490:折畳みがありません と怒られる。
 この点もvim6.4なら問題なし。
 
 これってバグじゃないかねぇ??
0160名無しさん@お腹いっぱい。2009/03/07(土) 21:54:58
>>159
俺はそんな高度な技使わないから
正直どうでもいいけど、
そもそもバグとして開発陣に報告してんの?
0161名無しさん@お腹いっぱい。2009/03/08(日) 04:30:41
:eでundoがクリアされるのもバグかもしれん
0162名無しさん@お腹いっぱい。2009/03/08(日) 11:19:41
vimでテンプレート展開したいんだけど、

 http://blog.livedoor.jp/siro1978jp/archives/51271244.html
 ・拡張子で判断
 ・テンプレートはファイル種類に対して1種類

というやつしか見つけられない。望むのは

 ・編集中に展開できる(新規作成時に選択できてもうれしい)
 ・どのテンプレートを使うか選択できる

なのだけど、だれかおせーて!
01631622009/03/08(日) 12:25:45
:r 使えばいいのか。
ファイル指定するのが面倒だけど、とりあえずこれでいいや
0164名無しさん@お腹いっぱい。2009/03/09(月) 22:13:32
どうもvimの起動に時間がかかる(5〜6秒)と思っていろいろ調べたら、以前に60000行程度のヤンクをしていて、yankrin.vimが読み込みにいってて時間がかかってた
お前らも気をつけろよ
0165名無しさん@お腹いっぱい。2009/03/09(月) 23:07:32
6万行ものファイルはさすがにスクリーンエディタで開かないな。
0166名無しさん@お腹いっぱい。2009/03/10(火) 00:53:53
うむ
0167名無しさん@お腹いっぱい。2009/03/10(火) 01:18:56
100MBくらいならreadonlyすればそんなに時間かからないからめんどくさくてviで開いちゃう
head/tail/grepだのlessがめんどい
その辺を統括した巨大ファイル用スクリプトとか出ないかなw
0168名無しさん@お腹いっぱい。2009/03/10(火) 08:02:07
どんな操作で読出専用にしているのか分からないけど、
lessなどから"v"でエディタに移る操作の方が簡単なんでない?
0169名無しさん@お腹いっぱい。2009/03/10(火) 13:31:46
view
0170名無しさん@お腹いっぱい。2009/03/16(月) 23:59:30
>>162
$ vim .vimrc
autocmd BufNewFile *.c 0r [テンプレートファイルへのパス]

参考: h: BufNewFile
0171名無しさん@お腹いっぱい。2009/03/17(火) 00:02:55
テンプレートの選択はできなかったなあ…
0172名無しさん@お腹いっぱい。2009/03/17(火) 00:55:20
>>162
http://www.vim.org/scripts/script.php?script_id=2291
0173名無しさん@お腹いっぱい。2009/03/17(火) 09:27:31
vim の略語(:ab で登録するやつ)ってファイルタイプごとに
登録できないんですか?

同じ略語をファイルタイプに応じて別のものに展開したいんですけど
0174名無しさん@お腹いっぱい。2009/03/17(火) 09:56:44
:help :autocmd
0175名無しさん@お腹いっぱい。2009/03/17(火) 10:33:11
>>174
それでうまくいくんですか?
同時に色んなタイプのファイルを編集してバッファを切り替えてるうちに
略語の定義が累積して効果がなくなるような気がするんですが

いちいち :abclear するってことですかね
ともかくヘルプを漁ってみます
0176名無しさん@お腹いっぱい。2009/03/17(火) 20:14:17
>>175
>vim の略語(:ab で登録するやつ)ってファイルタイプごとに
>登録できないんですか?

ファイルタイプ ruby の場合

(1) ruby.vim を作成する
( ユーザーは foo )
Windows Vista
C:\Users\foo\vimfiles\ftplugin\ruby.vim

Linux
/home/foo/.vim/ftplugin/ruby.vim

(2) ruby.vim に略語を登録する

iabbrev <buffer> elseif elsif
iabbrev <buffer> elif elsif

これで OK
0177名無しさん@お腹いっぱい。2009/03/17(火) 22:03:21
>>176
ありがとうございます。うまくいきました。
ファイルタイプ別の設定は略語に限らず ftplugin 以下のプラグインファイルに
書いておけばいいんですね。.vimrc がちょっとだけすっきりしました。
0178名無しさん@お腹いっぱい。2009/03/27(金) 22:43:41
http://vimperator.org/trac/wiki/Vimperator
これってすごいね。 びっくりした。
0179名無しさん@お腹いっぱい。2009/03/28(土) 19:39:56
>>154
ARG_MAX変更しないとすぐ涙目になるよ
0180名無しさん@お腹いっぱい。2009/03/28(土) 22:48:10
香り屋さんのところでVim7.2が公開されてたみたいなんで久しぶりにバージョンアップしたんだけど
これWin32用のVimが見る設定ファイルの名前が変わってたりする?
手元の7.1の環境からgvimrcとか設定ファイル一式をひっぱってきても全然反応がなくてデフォルトのまま…
7.2起動後に

:source gvimrc

ってやると、読み込んでくれるんだけど。

7.2起動直後に「Vi互換モードで動作中」って表示されるようになったみたいだけど
これも関係してる?
0181名無しさん@お腹いっぱい。2009/03/28(土) 22:55:05
>>180
:echo $VIMRUNTIME
0182名無しさん@お腹いっぱい。2009/04/02(木) 08:21:23
半角スペース 全角スペース タブを見分けられるよう可視にできないすか?
0183名無しさん@お腹いっぱい。2009/04/02(木) 08:55:18
:reg でレジスタの中身を表示したとき、 kbkbkb とつけた覚えのないkbという文字が並んでついているものがあるのですが
これは何なんですか
0184名無しさん@Vim%Chalice2009/04/02(木) 10:02:05
>>182

http://vimwiki.net/?faq%2F4
http://vimwiki.net/?%27list%27
http://vimwiki.net/?%27listchars%27
0185名無しさん@お腹いっぱい。2009/04/04(土) 01:39:55
うーむCUIのvimで使いたいんだけども
全角ハイライト
0186名無しさん@お腹いっぱい。2009/04/04(土) 03:39:13
CUIならターミナルの性能を越えることはできんだろ
0187名無しさん@Vim%Chalice2009/04/04(土) 10:25:48
>>185
wikiにも書いて来たけど、CUI の vim でやる時は guibg を ctermbg に書き換えれば OK
0188名無しさん@お腹いっぱい。2009/04/07(火) 19:20:43
分割した画面に一度に、:set 〜 する方法ってありませんか?
0189名無しさん@お腹いっぱい。2009/04/07(火) 19:27:19
:windo?
0190名無しさん@お腹いっぱい。2009/04/07(火) 19:52:15
>>189
できました!ありがとうございます。
0191名無しさん@お腹いっぱい。2009/04/13(月) 19:58:03
Debian スレから来ました。
http://pc11.2ch.net/test/read.cgi/linux/1235742742/583-

  lenny で vim 入れたんですが、:E で表示されるディレクトリ名の前に
  勝手に e の文字がくっついて移動できないのは私だけでしょうか?
  通常のファイルは問題なく開けます。あと、スワップファイルの前にも
  e の文字が付いていて謎です。
0192名無しさん@お腹いっぱい。2009/04/17(金) 00:12:18
Unixの質問掲示板から来ました。
http://pc12.2ch.net/test/read.cgi/unix/1239316057/l50

vimで:選択範囲!cmdで選択範囲を標準入力に流して、
結果で置換するというのを、結果で置換しないというのは
出来ますでしょうか。

例えばhello worldが選択範囲で、
:'<,'> ! sed -e 's/hello/bye/'
とやるとhello worldが置換されてbye worldになりますが、
これをhello worldを残したままコマンドを実行したいんです。
0193名無しさん@お腹いっぱい。2009/04/17(金) 00:32:07
>>191
vimのcvs/svnは基本的にcソースのみ管理しててランタイムファイルはリリースごとにしか更新されない
最新版はrsyncかftpで取る
http://www.vim.org/runtime.php
ftp://ftp.vim.org/pub/vim/runtime/
:Eの機能はnetrwというプラグインが提供していて最新版は作者のサイトにある
http://mysite.verizon.net/astronaut/index.html (VimStuffの中)

>>192
:help :w_c
0194名無しさん@お腹いっぱい。2009/04/17(金) 00:52:30
>>193
ありがとうございます!
上の例ですと以下でいけました。
:'<,'> w ! sed -e 's/hello/bye/'
0195名無しさん@お腹いっぱい。2009/04/19(日) 16:59:36
解除したいキーバインドがあるんですが、mapはどう書けばいいですか?
0196名無しさん@お腹いっぱい。2009/04/19(日) 17:07:31
unmap で helpれ
01971952009/04/19(日) 18:26:57
ありがとうございます。

何がしたいかというと、Kでカーソル下のフレーズのmanが出るのを解除したいのですが、
unmap <S-K> などと色々試したものの、No such mapping とエラーが出てしまいました。
書き方が間違っているんでしょうか?
0198名無しさん@お腹いっぱい。2009/04/19(日) 20:45:24
<Nop>を使うといいかもしれない
0199名無しさん@お腹いっぱい。2009/04/19(日) 21:27:54
>>197
それだったら
map K <nop>
でいいじゃん

大文字のkは単に K と書けばおk
02001952009/04/19(日) 22:34:57
<nop>なんてあったんですね。
おかげさまでできました。ありがとうございました。
0201名無しさん@お腹いっぱい。2009/04/20(月) 02:26:43
http://www.amazon.co.jp/gp/product/477413841X
この本どんな感じ?
0202名無しさん@お腹いっぱい。2009/04/21(火) 09:01:20
削除が全部切り取り扱いなのはどうにかならないんすか?
ヤンクしたのはx押しただけで更新されちゃうしregで見て選択するのも面倒だし
大量の文字削除したらそれバッファに残ってるし
0203名無しさん@お腹いっぱい。2009/04/21(火) 09:46:12
グダグダ言う前にマニュアル読めよ。適当なキーにブラックホールレジスタでもマップすりゃ済むだろ。
0204名無しさん@お腹いっぱい。2009/04/21(火) 20:03:52
ここまで簡単にどうにかなることを「どうにかならないんですか?」って言われてもなw
0205名無しさん@お腹いっぱい。2009/04/21(火) 21:21:55
初心者らしくへーこらしてりゃ叩かれないものを
0206名無しさん@お腹いっぱい。2009/04/21(火) 21:46:32
>>201
コレクターグッズ
0207名無しさん@お腹いっぱい。2009/04/24(金) 21:42:49
>>202
もう解決した?

set guioptions-=a

↓これ見れば解決するん
:help 'guioptions'
:help 'clipboard'
0208名無しさん@お腹いっぱい。2009/04/25(土) 22:02:12
コマンドモードで、入力モードにならずに行を挿入する方法はないでしょうか?
0209名無しさん@お腹いっぱい。2009/04/26(日) 00:31:04
"="\n"p
0210名無しさん@お腹いっぱい。2009/04/26(日) 00:32:30
enter忘れた
"="\n"<CR>p
0211名無しさん@お腹いっぱい。2009/04/26(日) 06:10:52
>>210
ありがとうございました。自分でショートカットキー作ることにします。
0212名無しさん@お腹いっぱい。2009/04/29(水) 16:29:12
レジスタの内容をコマンドの一部に使いたいのですがどうすればいいのでしょうか?
:nslookup @*
のような使い方をしたいのです。

ベタに CTRL-R * で貼り付けるとキーマクロとして実行した場合にうまく動作しません。(毎回同じコマンド内容になる)
0213名無しさん@お腹いっぱい。2009/04/29(水) 21:01:32
>>212
:execute '!nslookup' @*
0214名無しさん@お腹いっぱい。2009/04/30(木) 03:38:57
>>207
何の話
0215名無しさん@お腹いっぱい。2009/04/30(木) 07:57:14
>>214
逆エスパー間違い
■ このスレッドは過去ログ倉庫に格納されています