トップページunix
986コメント327KB

Vim6 Part10

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@w3mNGNG
Vim 6.xに関する話題、Part10です。
http://www.vim.org/

前スレ
http://pc5.2ch.net/test/read.cgi/unix/1086135625/

関連情報は>>2-7あたり。
0452名無しさん@お腹いっぱい。NGNG
>>450
--login付けなくても~/.bashrcは読むけど。
0453名無しさん@お腹いっぱい。NGNG
PHPの開発にWin板のvim使ってるのですが、『まるごとPHP!』を参考にしてphpdoc.vimを
使いたいのですが、なかなか動いてくれません。
やってみたことは"C:\vim\runtime\ftplugin\"にphpdoc.vimを入れて
:runtime! ftplugin/phpdoc.vim
を行いました。
この状態で class Hoge { と入力しても何も起きず、同様にfunction hoge() { としても何も起きません。
うまく動いている方、設定の仕方等間違いがありましたら教えてください。
0454名無しさん@お腹いっぱい。NGNG
その本はしらないがそれがファイルタイププラグインなら
set filetype=phpdoc
それから
help ftplugin-overrule
それよりphpdoc.vimを読んでみれ
書籍のおまけならコメントなりなんなり書いてあるだろし
ていうか本当に使い方書いてないんかいその本
0455453NGNG
>>454
すみません、聞き方がまずかったようです。
本には使い方が書いてあるのですが、UN*X用の説明らしく
${HOME}/.vim/plugin/
に置けば良いと書いてあります。特に他の説明はなく設置するだけであとはクラスや関数
を定義すれば勝手に動くと書いてあります。

また、このスクリプト自体は書籍のおまけではなく、www.vim.orgから落としたものです。
ttp://www.vim.org/scripts/script.php?script_id=520
スクリプト内部には機能の説明のみで特に設置方法についての言及は無いようです。

help ftplugin-overruleは読んでみます。
#そもそも本当にファイルタイププラグインなのか分からないのですが・・・
0456名無しさん@お腹いっぱい。NGNG
>>455
スクリプト嫁
読んだらわかる
0457名無しさん@Vim%ChaliceNGNG
set iminsert=2
let a = input(":")
とやろうとしたんだけど、input()のときは自動的に
IMEオフにされちゃうんだな。
0458名無しさん@お腹いっぱい。NGNG
vim歴1年半にして
:b filename
でバッファ切り替えできることを知りましたよ。
今までずっと:bn,:bpだけでやってた…
0459名無しさん@お腹いっぱい。NGNG
bm
sb
vert sb
も便利
0460名無しさん@お腹いっぱい。NGNG
vim users guideみたいな感じでtipsを書いていくwiki
があったらいいと思うんだけどどうだろう。
ここ、同じ質問が出ることもしょっちゅうあるし。
0461名無しさん@お腹いっぱい。NGNG
>>460
wikiあったって一緒
聞くやつは聞くんだよ
0462名無しさん@お腹いっぱい。NGNG
>>460
ああ、欲しいかも…
家の野良鯖にPukiWikiでも突っ込んでおいたらみんな書き込むかなぁ…
0463名無しさん@お腹いっぱい。NGNG
でもあった方がいいな。ということで>>460ヨロシク
0464名無しさん@お腹いっぱい。NGNG
バッファ切り替えって CTRL+^ も使わない?
プレフィックスなしで直前のバッファ、数字でバッファ指定。
0465名無しさん@お腹いっぱい。NGNG
:ls してから :b [N] するのがめんどかったので、
バッファエクスプローラを使ってます。
vim.org から良さそげなスクリプトを落っことしてきて。
0466名無しさん@お腹いっぱい。NGNG
バッファ一覧を表示してjkで選択できるスクリプト
http://vim.sourceforge.net/scripts/script.php?script_id=42
0467名無しさん@お腹いっぱい。NGNG
>466
微妙にChaliceとの相性が悪いので
Chaliceと併用するときは要注意、と。
0468名無しさん@お腹いっぱい。NGNG
>>462
よろしく。
0469名無しさん@お腹いっぱい。NGNG
Chaliceで書き込む(Ctrl-Enter)となぜかFirefoxが起動して
書き込みエラーになる場合がある(実際は書き込まれている)
Win2000 + vim6.3 + Chalice 1.8.062 です
たぶんこのカキコもエラーに・・・
0470名無しさん@お腹いっぱい。NGNG
1.9にあげろ
0471名無しさん@お腹いっぱい。NGNG
>>460
sourceforge でプロジェクト申請ってできるかな?
0472名無しさん@お腹いっぱい。NGNG
WikiFarmで作ったら?
ttp://wiki.fdiary.net/
0473462NGNG
とりあえず、PukiWiki入れてみた。
http://vim.mydns.jp/
中身はまだ何も書いてないのでみんなで編集しませう。
今日はもう寝る。
0474名無しさん@お腹いっぱい。NGNG
グッジョブ!!!
0475名無しさん@お腹いっぱい。NGNG
悪いことはいわん
個人のとこはやめとけ いつ閉じるかもわからんし
広告入れたりして暴挙に出ることがある
0476名無しさん@お腹いっぱい。NGNG
確かに自鯖っぽいし
やめといたほうが無難だな
0477名無しさん@お腹いっぱい。NGNG
>>475
んじゃ代わりに立ててよ。
0478名無しさん@お腹いっぱい。NGNG
foo to the
とあって、foo から theの一つ前まで削除
foo to the => the
としたい場合どうすればいいですか?
dtt
だと、
foo to the => to the
となって、期待通りにはならないです。

よろしくお願いします。
0479名無しさん@お腹いっぱい。NGNG
>>478
d2w
0480名無しさん@お腹いっぱい。NGNG
wikiちょっと書いてみた。
勝手に項目も作っちゃったけど、まずかった変えてね>>462
0481名無しさん@お腹いっぱい。NGNG
>>480
GJ
0482名無しさん@お腹いっぱい。NGNG
>>480
GI Joe
0483462NGNG
>>480
gj
まずは、中身が無いと始まらないからじゃんじゃんどうぞ。
ある程度増えてきたらページ分割、振り分け、カテゴライズを考えています。
0484名無しさん@お腹いっぱい。NGNG
>>479
上の例だと d2w でもできるのだけど、どこまで削除したいのかを文字で指定して削除したいのです。

to と the で先頭の文字が重なっている(わざと)のはそのためです。
0485名無しさん@お腹いっぱい。NGNG
d2tt
0486名無しさん@お腹いっぱい。NGNG
vim tips でググると色んなのが出て来るなあ。
最初に出てきたこれからして面白かった。
/joe/e : cursor set to End of match
/joe/e+1 : cursor set to End of match plus 1
/joe/s-2 : cursor set to Start of match minus 2
http://www.rayninfo.co.uk/vimtips.html
0487名無しさん@お腹いっぱい。NGNG
FreeBSDで$LANG,$LC_ALLをja_JP.UTF-8にして使ってるんですが、
:set enc=japan するとencがeuc-jpになってしまいます。
実用上困らないけどなんか気持ち悪いです。
なんか必要なコンパイルオプションとかあるんでしょうか。
0488名無しさん@お腹いっぱい。NGNG
utf-8 は日本専用エンコーディングではない
0489名無しさん@お腹いっぱい。NGNG
488様が何を仰りたいのか理解できません(気持ちはわかります)が
マニュアルを読んで納得することができました。
すれ汚しごめんなさい。
0490名無しさん@お腹いっぱい。NGNG
煽りでもなんでもないんじゃないの?
0491名無しさん@お腹いっぱい。NGNG
うむ
言ってるとおりだからな
0492名無しさん@お腹いっぱい。NGNG
vim wikiいい感じですね
0493名無しさん@お腹いっぱい。NGNG
そこそこ栄えてるみたいだね。
0494名無しさん@お腹いっぱい。NGNG
wikiだとやはり新着が分かりづらいのと,1件1件に対してコメントが書きづらいな.
その点vim onlineはいいけど, あれもrateトップが
super starでがっくり来るから,古いのはrate打ちどめにするとか
した方がいいんでないかと思う.
分類が目的別になってるのはいいね.
0495462NGNG
>>494
>wikiだとやはり新着が分かりづらいのと,1件1件に対してコメントが書きづらいな.
そうそう、そこでTrackerプラグインを使って見ようかと模索中で
http://vim.mydns.jp/?tipstest
vim online風味で出来たらいいなぁ…とか妄想中
細かくページが分割されればRSSで新着が確認できるので改善されるでしょう。

>その点vim onlineはいいけど, あれもrateトップが
>super starでがっくり来るから,古いのはrate打ちどめにするとか
>した方がいいんでないかと思う.
rateとかkarmaとかは考えていないけど全てのページに
カウンターを仕込んであるのでそのページの参照数で
ソートとか考えています。

>分類が目的別になってるのはいいね.
tipstestのページのTrackerプラグインではモードで
カテゴリー分けしちゃってますが、やはり目的別のほうが
よさげですねぇ…

って、vim wikiに関する話題はここで良いのかなぁ…とか
思ったりしますが、どうなんでしょう?
まぁ、ここから出たwikiだから良いような気もしますが、
メニューに雑談ページへのリンクも付けたので良かったら
そっちでもどうぞ。
0496名無しさん@お腹いっぱい。NGNG
.vimrcいじっているのだが、なんか納得いかない。
あなたの.vimrc見せて下さい・・・。
0497名無しさん@お腹いっぱい。NGNG
vim でカーソルがタブ文字の上にあるとき、
カーソルは右端に表示されますが、
これを左端に表示するようにできませんか?
0498名無しさん@お腹いっぱい。NGNG
:set listchars=\ \ 
2つめのバックスラッシュの後にも空白が必要
:set list
0499298NGNG
なんで>>298みたいな変なことになったかが分かった。
cygwin上から起動したからだ。変なことしたなあ;;

>>498
  :set listchars=tab:\ \
でない?
0500498NGNG
>>497 >>499

嘘書いてごめんなさい. 
今確認してみましたが, >>499 さんの言われる通りです.
0501名無しさん@お腹いっぱい。NGNG
>>498,499,500
できました。どうもありがとうございます。
0502名無しさん@お腹いっぱい。NGNG
KoRoNさんの"テキストオブジェクトって本家に取り込まれてないの?
あれとても便利なんだけど。
0503KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>502
7.0のTODOには入ってたと思います。6.3系では取り入れられないでしょう。
0504名無しさん@お腹いっぱい。NGNG
todo.txtに
8   next release
で入ってますね。

5   Make it possible to use syntax group matches as a text object.  For
    example, define a "ccItem" group, then do "da<ccItem>" to delete one.
    Or, maybe just define "dai", delete-an-item, to delete the syntax item the
    cursor is on.

というのも面白そうだけど、実装が難しい割に使わないかなぁ…
0505名無しさん@お腹いっぱい。NGNG
gimp, gtk入れるためにiconv.dllを上書きしても問題ないでしょうか?
0506名無しさん@お腹いっぱい。NGNG
>>505
心配ならvimをインストールしたディレクトリ(gvim.exeがあるところ)にiconv.dllをコピーしておくと
それを優先して使ってくれるので安心。
0507名無しさん@お腹いっぱい。NGNG
自分でよくわかってなかったので、折り返し関連のオプションをまとめて
みました。
間違いがあったら指摘してください。

* 一定の長さで自動的に改行
        :set textwidth=30
で31文字目に達したとき,1つ前の単語の区切りに改行を挿入する。
ただし行の間に空白が1つもない場合は改行されない。
折り返し位置をウィンドウの幅によって決めたいならば
:set textwidth=0
:set wrapmargin=10
でウィンドウの右から10文字目に達したとき、改行が挿入される。

一旦入力した文章をこのルールに従って整形するには
範囲選択して gq

* 長い行を画面上折り返して表示する
:set wrap
ワードラップさせるには
:set linebreak
ワードラップするとき、単語の区切りとみなされる文字は
オプション'breakat'で設定する。通常はデフォルトのままでいい。
折り返した行の先頭に目印を表示させるには
:set showbreak=~
~ は好きな文字でいい。
表示行単位で移動するには
上 gk
下 gj
0508名無しさん@お腹いっぱい。NGNG
自動的に改行されるのは 'formatoptions' に t や c が含まれているときだけ。
0509名無しさん@お腹いっぱい。NGNG
>>508
ありがとうございます。
0510名無しさん@お腹いっぱい。NGNG
.vimrcにautocmdを書くときは必ず
augroup name
au!
augroup END
の中に書いた方がいいんでしょうか?
0511名無しさん@お腹いっぱい。NGNG
:set <option>=
の後にTABキーを押すと現在の値が補完されるな。でも何に使うんだ?
0512名無しさん@お腹いっぱい。NGNG
修正、確認
0513名無しさん@お腹いっぱい。NGNG
>>510 必須じゃないけど書いておいたほうが無難
0514名無しさん@お腹いっぱい。NGNG
noremap <C-Q> l
などとしても C-Q が効きません。
C-S を押しても control flow が効いているわけでもなく。
誰かお助けお願いします。
0515名無しさん@お腹いっぱい。NGNG
>>514 使ってるOSや端末を書けよ
0516名無しさん@お腹いっぱい。NGNG
WindowsでSubversionのレポジトリからチェックアウトしたファイルから、
grep -rで検索したいのですが、その場合に.svn以下を対象からはずしたいのですが、
何かいい方法ないでしょうか?
grep -vをうまく使えばなんとかなりそうなんですが、いい方法が見つかりませんでした。
0517名無しさん@お腹いっぱい。NGNG
>>516
なぜこのスレ?

find . -path '*/.svn' -prune -o -print|xargs grep hoge
0518516NGNG
VimのQuickfixを使いたくて..
で、set grepprgを工夫すれば、うまくいくかなと思ったんですがパイプを理解してくれないようで。

:gr -r hoge * | grep -v .svn
とやると
:!grep -nH -r hoge * > C:\<TMPディレクトリ>\**1.tmp 2>&1
:!grep -nH -v .svn > C:\<TMPディレクトリ>\**2.tmp 2>&1
となるので、TMPファイルの名前を事前に
grep -v .svn <TMPファイル>
と指定できるのなら、うまくいきそうですが..
0519名無しさん@お腹いっぱい。NGNG
.svn以下を検索しないコマンドを作ってgrepprgでそれを使うとか
0520KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>518
GNU grepならば-r指定時は--excludeで無視したいファイルのパターンを指定できます。
もしくは一度ファイルに出力し編集して:cfileで取り込むっていうのもありでしょう。
0521516NGNG
>>520
あぁぁ..
すいません、excludeってあったのですね。JMばっか見てたから気づきませんでした..
grep --helpで出てくるじゃん..
お騒がせしました〜
0522名無しさん@お腹いっぱい。NGNG
aaaaaaaa
kasjdfkaj
0523名無しさん@お腹いっぱい。05/01/17 18:45:41
break;の抜けてるcase:を探す正規表現を考えてみたんだけど、どうだろう。
\v<case\_s+\k+:((.|\_s)(break)@!)*\w+:
0524名無しさん@お腹いっぱい。05/01/17 19:55:09,
>>523 switchの入れ子は?
052552305/01/17 21:00:40
うーん、お手上げ。
正規表現でネストまで考慮できるの?
これでハイライティングできたら便利かなーと思ったんだけど。
0526名無しさん@お腹いっぱい。05/01/18 15:16:54
Win XP で kaoriya の gvim 6.3.54 を使っています。

ツールボタンの「クリップボードから貼り付け」の上で、左右のマウスボタンを
同時に押すと、へこんだままになり、マウスの操作がおかしくなって、コマンド
ラインから(:q)しか終了できなくなります。

これが再現する人は他にもいますか?
0527名無しさん@お腹いっぱい。05/01/18 16:19:57
>>KoRoNさん
Vim 6.3.054 差分パッケージのパッチにconfigureの差分が抜け
落ちていて、migemoなどが使えなくなっています。
0528KoRoN@Vim%Chalice ◆8XALICEsdk 05/01/18 16:22:04
>>526
症状を確認しました。対症療法としてはフォーカスを移動させれば直るみたいです。
0529KoRoN@Vim%Chalice ◆8XALICEsdk 05/01/18 16:42:00
>>527
報告ありがとうございます。今difjパッケージを差し替え終えました。054_1がそれです。
0530名無しさん@お腹いっぱい。05/01/18 17:44:00
>>529
ありがとうございます。直ってました。
0531名無しさん@Vim%Chalice05/01/20 02:39:04
Linuxでvim6.3.52 + Kaoriya patchを使っていますが,
印刷に関しての質問です.
使っているのはpostscriptプリンタで,普段ターミナルからは
a2ps <file name> | lpr で問題無く印刷できています.

:he hardcopy を読む限り,vimはデフォルトで postscript に変換してから
lprに流す(正確にはprintexprの指定)という挙動のようなので,何も考えずに
:ha したところ,日本語部分が文字化けしてしまいました.

同じような経験の方はいらっしゃいませんか?
ちなみに,printexpr, printdeviceはデフォルトのままですが,
printfontにはちゃんと日本語フォントを割りあてているつもりです.
  set   printfont='mplus_j12r-iso,mplus_j12r-jisx,mplus_j12r'
0532mattn@Vim%Chalice05/01/20 11:10:39
>>531
vim6.3 ではマルチバイト印刷はサポートされていません。
現在マルチバイト印刷は Mike Williams 氏によってパッチが作成され、vim7 csv にマージされています。
私のほうで確認してみましたが、一応は動作しております。以下、出力サンプルです。
ttp://hp.vector.co.jp/authors/VA020411/Vim/sample.ps
0533名無しさん@お腹いっぱい。05/01/23 03:15:25
全角スペースを\sに含められないんかねぇ…
# そして\Sも全角スペースを含まないように

\s* こうやりたい所を [  \t]* ← 全角Sp+半角Sp+タブ と
わざわざ文字クラスを作るしかない…
0534KoRoN@Vim%Chalice ◆8XALICEsdk 05/01/23 15:43:18
>>533
> 全角スペースを\sに含められないんかねぇ…
Bramが納得できる形で提案できるならば可能でしょう。そのあたりがうまくできれば
「。」「、」なんかに対応した「文」という定義もできそうなので、結構キーポイン
トなんですよね。

直近で、ソースコードを弄らずに問題を解決するならば、[]でなんとかするしかない
ですね。
0535名無しさん@お腹いっぱい。05/01/23 16:47:10
>>523 正規表現はある程度自信があったんですが、ここへ来てしぼみました・・
↓の正規表現が解読できません。
ヘルプでも、\v< や \_s が出てきません。
また、文字の否定は ^ ですけど、グループの否定なんてできるのでしょうか?
↓では、breakがない意味らしいですが、↓のどれがbreakがないになるのでしょか

\v<case\_s+\k+:((.|\_s)(break)@!)*\w+:
0536名無しさん@お腹いっぱい。05/01/23 17:07:20
h \v
h \_s
h \@!
0537名無しさん@お腹いっぱい。05/01/23 17:11:32
h \v
h \_s
h \@!
0538名無しさん@お腹いっぱい。05/01/23 17:41:08
>>536 なぜか、ヘルプではすべてエントリーなしになってしまいます。
0539名無しさん@お腹いっぱい。05/01/23 17:59:20
>>538
ひょっとしてこうじゃないか?
:help \\v
0540名無しさん@お腹いっぱい。05/01/23 18:03:08
:h のコツは<tab>を使うこと
0541名無しさん@Vim%Chalice05/01/23 19:05:26
:hの時はCtrl-Dもつかうこと。
0542名無しさん@お腹いっぱい。05/01/23 19:07:19
そういえば
:h v_g?
でv_g?のヘルプに飛べない。v_g]に飛んでしまう。
:helpgrep v_g?
で飛べるが、なんか他に方法があるんだろうか?
0543名無しさん@お腹いっぱい。05/01/23 19:38:47
>>542
普通にv_g?で飛べるぞ
0544名無しさん@お腹いっぱい。05/01/23 21:55:48
検索実行後数秒でハイライトが消えてくれるといいなと思い

:au CursorHold * noh

としてみたのですが、待てど暮せど何も起きる様子がありません。

:au CursorHold * echo "HOGE"

とすると数秒後に HOGE と出るので、auそのものは動いているようなのですが。。。
何がいけないのでしょう?
0545名無しさん@お腹いっぱい。05/01/23 22:23:13
:au CursorHold * set nohl
でどう?
0546名無しさん@お腹いっぱい。05/01/23 22:25:02
autocmd CursorHold * set nohlsearch
こうか

0547名無しさん@お腹いっぱい。05/01/23 22:31:12
ありがとうございます。うまくいきました。

>>545見てから気付いたのですが、noh の方にちゃんと理由も書いてありました。
動作はするけど即座に元に戻っちゃってたんですね。

:noh[lsearch]
(snip)
This command doesn't work in an autocommand, because
the highlighting state is saved and restored when
executing autocommands |autocmd-searchpat|.
0548名無しさん@お腹いっぱい。05/01/23 22:34:16
あーでもこれだと恒久的にハイライトしなくなっちゃうのか。うーむ。
054954205/01/24 00:18:42
>>543
まさか俺だけ?orz
実害ないからいいけど
0550名無しさん@お腹いっぱい。05/01/24 00:32:03
あ、ホントだ飛べないや@vim 6.3 (パッチ未適用)
補完の候補には出るのに。
0551名無しさん@お腹いっぱい。05/01/24 08:29:15
>>548
俺はこうして、適当にバインドして使ってるヨ。便利。
function! ToggleHighlight()
if &hlsearch != ''
set nohlsearch
else
set hlsearch
endif
endfunction
0552名無しさん@お腹いっぱい。05/01/24 14:28:35
>>551
普通に
  set hlsearch!
で良いんじゃないかと。
■ このスレッドは過去ログ倉庫に格納されています