トップページ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あたり。
0363名無しさん@お腹いっぱい。NGNG
>>362
すいません、 >>359 さんの回答の意味を取り違えていました。
普段 screen 使っていますので、それは了解しました。

で、できると嬉しいと思っていたのは、たとえば、
ある一つの vim プロセスの別のウィンドウをそれぞれ別の端末から操作したい、
というようなことです。
さすがにそれは難しいかなあと理解しつつ、もしやと思い質問してみた次第です。
0364名無しさん@お腹いっぱい。NGNG
そんなんはアプリの仕事ちゃうやん
vncでもなんでも使えばええねん
0365mattn@Vim%ChaliceNGNG
>>363
gvim を外部から操作するのであれば --remote-expr や --remote-send である程度は操作できます。
端末上(vim)では実装されていませんが...
0366名無しさん@お腹いっぱい。NGNG
>>364
vncってscreenといっしょでは。

> ある一つの vim プロセスの別のウィンドウをそれぞれ別の端末から操作したい、

は、多分(複数の人が)「同時に」操作したいのだと思う。
カーソルもウィンドウ毎に存在するような状態で。

vncやscreenでは交互にしか操作できない。
0367名無しさん@お腹いっぱい。NGNG
<C-[>使いまくってたら右手が腱鞘炎になりそう。
ESCは遠すぎて論外だし、<C-C>も使いづらい。
バインドしたら他のマシン使うときに不便。
Emacsは左手が腱鞘炎になりそうだし、どうしたらいいですか?
0368名無しさん@お腹いっぱい。NGNG
廃業しろ
0369名無しさん@お腹いっぱい。NGNG
>>367
キーボード変えてみるとか。
0370名無しさん@お腹いっぱい。NGNG
>>369
どんなキーボードがお勧めですか?
今は普通の英語キーボードでcaps->ctrl
0371名無しさん@お腹いっぱい。NGNG
>>367
日本語の変換キー(Spaceの横にあるやつ)にESCをわりあてる。
0372名無しさん@お腹いっぱい。NGNG
>>370
ESC⇔半角/全角 も入れ換えれば?
0373名無しさん@お腹いっぱい。NGNG
>>371
それは便利なんだけど、癖がつくと他のマシン使うときに苦労しません?

実際みんなはどうやってます?
普通に<C-[>か>>372の方法かな?
0374名無しさん@お腹いっぱい。NGNG
371じゃないけど俺も入れ換えてる.
他のマシンでは普通のESC.
逆にいつもESCやC-[を使ってる人って苦痛じゃないのかな?
どう考えても押しづらいだろ.  
0375名無しさん@お腹いっぱい。NGNG
>>373
ヒロシです...
俺のキーボードは Ctrl が遠すぎて、小指がつりそうです。
0376名無しさん@お腹いっぱい。NGNG
c-[は押しやすい。
0377名無しさん@お腹いっぱい。NGNG
ヒロシです...
俺の手には小指がなかとです。
0378名無しさん@お腹いっぱい。NGNG
ヒロシです...
俺のコントロールキー横の隙間に、誰かが食べたカップ麺の食べカスが見えます...
0379名無しさん@お腹いっぱい。NGNG
>>374
<C-[>は押しやすいぞ
逆に半角/全角なんてホームポジションから離れすぎて流れるように打てない
0380名無しさん@お腹いっぱい。NGNG
Aの左あたりにCTRLがあればネ(入替可)
0381名無しさん@お腹いっぱい。NGNG
>>370
PFU HappyHackingProfessional
0382名無しさん@お腹いっぱい。NGNG
C-[な人はCtrl<->Caps入れ換えてるんだよね?
0383名無しさん@お腹いっぱい。NGNG
>>382
HHKでなければ、CapsをCtrlにしてます。
CtrlはCtrlのまま。
だからCaps->Ctrlかな。
0384名無しさん@お腹いっぱい。NGNG
このプラグイン使ってる人いる?

visual_studio.vim : Vim and Microsoft Visual Studio .NET integration
http://www.vim.org/scripts/script.php?script_id=864

Pythonが必要とかでなにやら面倒そうなんだけど.
0385名無しさん@お腹いっぱい。NGNG
>>382
入れ替えてないよ
必要ないし
0386名無しさん@お腹いっぱい。NGNG
入れ替えると普通の人困るしね。
どうせCapsなんて使わないから>>383がいいよね。
0387名無しさん@お腹いっぱい。NGNG
やっぱり皆、左のCtrl使うの?
0388名無しさん@お腹いっぱい。NGNG
>>387
左のCtrl*も*使うよ。
0389名無しさん@お腹いっぱい。NGNG
この話題は
*が*い*し*ゅ*つ*
です
0390名無しさん@お腹いっぱい。NGNG
がいしゅつですか。れれれのれ。
0391名無しさん@お腹いっぱい。NGNG
Keyboard キーボード 2
http://pc5.2ch.net/test/read.cgi/unix/1055904385/
0392名無しさん@お腹いっぱい。NGNG
小指が無いなら薬指...
ハイ!ハイ!ハイハイハイ!
あるある探検隊!あるある探検隊!あるある探検隊!
0393名無しさん@お腹いっぱい。NGNG
>>389
ワードナは*外出中*
とかいうのにひっかけたんでしょ?
0394名無しさん@お腹いっぱい。NGNG
すいません お聞きしたいのですが
複数行にわたってマッチするにはどうしたらいいのでしょうか?
hoge.*\n.*\n.*\nhoge
みたいにしていたのでは 改行の数がわからないとマッチさせることができません
改行の数がわからないときはどのようにしてマッチさせるのでしょうか?
すいませんが押しえてくださいお願いします
0395名無しさん@お腹いっぱい。NGNG
ageとけ
0396名無しさん@お腹いっぱい。NGNG
>>394
hoge(.*\n)*hoge じゃだめだっけ〜つり
0397名無しさん@お腹いっぱい。NGNG
うおー very magic!
prefix \v
0398名無しさん@お腹いっぱい。NGNG
hoge\_.*\_^fuga とか
0399名無しさん@お腹いっぱい。NGNG
横入りすいません
私も似たようなことで困っていたので押しえてください
私の場合はマッチした複数行の改行を削除(行の連結)したいのですが
改行の削除の方法がわかりません
すいませんがおしえてください
0400名無しさん@お腹いっぱい。NGNG
ageとけって
0401名無しさん@お腹いっぱい。NGNG
>>399
s/\n//
とかとか。
0402名無しさん@お腹いっぱい。NGNG
>>399
:%s/foo\n\(.*\n\)*bar/\=substitute(submatch(0), "\\n", "", "g")/
0403399NGNG
>>401
それだとできないんですよ
私のがおかしいのかな??
0404399NGNG
>>402
ありがとうございます
それやったら 5分くらいかかって まだできないんですけど・・
どうなんですかね。。
0405名無しさん@お腹いっぱい。NGNG
multiline の正規表現は重かったような。
止まってたきもする。しらんけん。
0406399NGNG
まだできない。。
Celeron-667MHzだけど・・・
0407399NGNG
まだおわらん・・
おとそうかな・・
でも編集中だったし・・
泣きそう・・
0408 ◆Vim6/xykh2 NGNG
Vim で改行を大量に削除するのは、危険です。
激遅になります。止めた方がいいです。
C-c で停止させて、 :q! で終了してください。

(1) SED の場合、改行削除。( sed 詳しくないけど )
[prompt]$ cat a.sed
:loop
$!{
N
s/\n//
b loop
}

[prompt]$ sed -f a.sed in.txt > out.txt

(2) Ruby の場合
ruby -e 'print(ARGF.read.gsub(/\n/,""))' in.txt > out.txt
0409 ◆Vim6/xykh2 NGNG
それに、syntax が有効だと遅くなりますね。

あと、vim の行の連結は、通常 J または gJ を使います。
:h gJ
単なる改行の削除なので、gJ を使います。
これも、広範囲の場合は使えません。
0410 ◆Vim6/xykh2 NGNG
これの方が安全かも。
ruby -ne 'print $_.chomp' in.txt > out.txt
0411名無しさん@お腹いっぱい。NGNG
>>408
そういうのもいいと思うんだけど
彼のやりたいことは、ファイルの中のまっちした部分にだから
それだと、都合が悪いのでは?
0412名無しさん@お腹いっぱい。NGNG
あれかね、vim は multi-line regex はあまり考えてない?
0413名無しさん@お腹いっぱい。NGNG
つーか、複数行の正規表現をお手軽に使える utility ってなんかある?
0414399NGNG
皆さんありがとうございます
私のやりたいことは

<table border="1" bordercolor="black" width="640">
<tr><td colspan="2">hoge</td></tr>
<tr><td><center>./hoge.gif</center></td><td>
A:<br>
B:<br>
<br></tr>
<tr><td colspan="2">hoge</td></tr>
</table>

<table border="1" bordercolor="black" width="640">
<tr><td colspan="2">huge</td></tr>
<tr><td><center>./huge.gif</center></td><td>
A:<br>
B:<br>
C:<br>
<br></tr>
<tr><td colspan="2">huge</td></tr>
</table>

等と数百個(上記のようなtableが)記述されているファイルがあり
それを 一つのテーブルごとに1行にしたいのです
すいませんがお力を貸していただきたいです
よろしくお願いします
0415KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>412
Vimにとってはマッチそのものより、連結後に1行が長くなることのほうがボトルネッ
クっぽいです。

>>413
Perl

>>414
特定のキーワードで良いのならば
:/<table>/,/<\/table>/join
みたいな形の方が良さそうです。402の正規表現は.*が*で囲まれるという、バックト
ラックが多発する典型的パターンに近いので、時間がかかっても当然という印象です。
0416名無しさん@お腹いっぱい。NGNG
>>415
ありがとうございます
joinなんていうものがあるのですね
しらなかったです

ですが それだと1つしか連結されないです
%s///
みたく すべての行をするようなことはできないのでしょうか?
0417名無しさん@お腹いっぱい。NGNG
じゃあこんなんどうよ。
perl -p -e 's/\n//g' hoge.html | sed -e 's/\(table>\)/\1\n/g'
0418名無しさん@お腹いっぱい。NGNG
これは遅い?
:%s@<table\>.\{-}>\_.\{-}</table>@\=substitute(submatch(0), "\\n", "", "g")@
0419KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>416
:help multi-repeat
> To repeat a non-Ex command, you can use the ":normal" command:
このあたりを参照してください。

>>418
\=も遅くなる1つの要因です。あと.\{-}>\_.\{-}の部分がホトンド意味無いかも。最
短マッチ\{-}を使いたくなる気持ちはわかるんですが、なるべく[^>]のような否定パ
ターンを使うほうが、マッチ自体は高速になります。
0420 ◆Vim6/xykh2 NGNG
sed で、できた。

[prompt]$ cat a.sed
/^ *<table\>/,/^ *<\/table>/{
H
/<\/table>/!d
g
s/\n//g
}

[prompt]$ sed -f a.sed in.html > out.html
0421名無しさん@お腹いっぱい。NGNG
--remote-silentをつけて起動すると、カーソル位置を指定出来ないんでしょうか?
gvim +70 --remote-silent hoge.txt
とやってるんですが上手くいきません。
0422KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>421
:help --remote-silent
> --remote-silent [+{cmd}] {file} ...
0423名無しさん@お腹いっぱい。NGNG
今開いているバッファすべてを対象に文字列を検索したいのですが,
いい方法はないでしょうか?
0424名無しさん@お腹いっぱい。NGNG
:bufdo は〜
0425名無しさん@お腹いっぱい。NGNG
bufdo g/hoge
という感じでしょうか.
/みたいに1個1個まわっていくのは無理ですかね?
0426名無しさん@お腹いっぱい。NGNG
.でノーマルモードの前回コマンドを繰り返せるけど
コマンドモードの前回コマンドを繰り返す方法ってある?

それがあれば425の要求も満たせそうな気ガス
0427名無しさん@お腹いっぱい。NGNG
>>426
@:
0428名無しさん@お腹いっぱい。NGNG
>>341(KoRoNさん)

uim-fepの開発者です。
uim側を修正して、0が直接入力で1がひらがなになるようにしまし
たので、KaoriYa版のuim-fepのサポートを継続してくださるようお
願いいたします。
0429名無しさん@お腹いっぱい。NGNG
windows 版のvim6で、
あるアプリケーション(mozexというmozilla拡張機能--textareaを外部エディタで編集できる)
から、vimを起動するときに、fencをutf-8にしたいので、
\path\to\gvim.exe -c "set fenc=utf-8" %t
としているのですが、
ファイルが空の場合、fencが設定されません。
ファイルが空の場合でもfencを設定するにはどうすればよいかご教授ください。

fencs=ucs-bom,ucs-21e,iso-2022-jp-3,utf-8,euc-jisx0213,euc-jp
をvimrcでは設定しています。
0430KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>428
AnthyとVimとの間で板ばさみにしてしまって申し訳ありません。サポート継続の件は了
解しました。理由さえしっかりしているのならAPIが変わってしまうのは仕方が無いと
いうスタンスなので、Anthyのほうで変わってしまった経緯が気になるところです。も
しもその辺を調べられそうなポインタがありましたら教えてください。
# 万が一作者さんのキマグレだったりしたら、付き合うのはツライところですね(苦笑

>>429
enc=utf8にするとか、--cmdでautocmd BunNewなんかを設定するのはどうでしょう。
0431名無しさん@お腹いっぱい。NGNG
教えて!
http://05xx.sub.jp/ttssh/
0432名無しさん@お腹いっぱい。NGNG
>>422
gvim --remote-silent ++70 hoge.txt
で上手くいきました。ありがとうございました。
0433名無しさん@お腹いっぱい。NGNG
>>425
:bufdo grepadd! something %
:cn :cn :cn ... :@ :@ :@ ...
0434名無しさん@お腹いっぱい。NGNG
わからないことがあったので教えてくだされば幸いです

<p align="left" class="aaa"><a name="1">hoge</a> - sato<a href="a.html#a" target="_blank"></a></p>
<p align="left" class="aaa"><a name="1">hoge</a> - sato</p>
上記のような記述が複数あるファイルで
両方のhogeと言うリンクの名前をを取り出そうと思い
:%s/.*<a\ name=.*>\{-}>\(.*\)<\{-}<\/a>.*/\1/
とすると、2行目の例の方はうまくhogeが取り出せるのですが
1行目のほうは取り出せません
いろいろと考えてみたのですが 私的にはこれでもうまく行くと思います
すいませんが どこが悪いのか訂正していただけないでしょうか?
よろしくお願いします
0435名無しさん@お腹いっぱい。NGNG
[^]の使い方教えなかったっけ。
0436434NGNG
>>435
私に言っているのでしょうか?
[^]と言うと否定ですよね?
それも 私なりにやってみましたけど それだと
2行目の hogeすら正しく表示されないんですよ
:%s/.*<a\ name=.*[^>]>\(.*\)[^<]<\/a>.*/\1/
とやってみました。
これもおかしいのでしょうか?
0437名無しさん@お腹いっぱい。NGNG
もう正直、どっかで正規表現を勉強しなおしてきてホスイ
0438 ◆Vim6/xykh2 NGNG
434 == 399 ?
0439KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>436
こんな感じでしょう。

:%s/.*<a name=[^>]*>\(.\{-}\)<\/a>.*/\1/

根本的に * や \{-} 、いわゆる量指定子の使い方を勘違いされているようです。正規
表現の動作する仕組みを知っていれば、その辺りでつまづくことはなくなるものです。
437ではありませんが、Webサイトや書籍で正規表現について理解を深めると良いでしょ
う。書籍ではオライリーの詳説正規表現をオススメしておきます。
0440名無しさん@お腹いっぱい。NGNG
\=substitute(submatch(0), "\\n", "", "g")

\(.\{-}\)
ってどういう意味?
0441名無しさん@お腹いっぱい。NGNG
:h /\=
:h substitute()
:h submatch()
:h /\{-
まずこれを見てくれ
0442名無しさん@お腹いっぱい。NGNG
>>433
希望通りの動作です.ありがとうございます.
0443名無しさん@お腹いっぱい。NGNG
ここはvimスレだから、聞かれればvimでなんとかしちゃおうって思うんだろうし、vimにそれだけの力が
あるのは分かっているけれどさ、awk(場合によってはsed)使った方がいいとアドバイスするのも、
やさしさじゃないかなと、ここんとこの質問書き込みをみておもたよ。

と、チラシの裏のかわりに書いてみるテスト。
0444428NGNG
>>430
>Anthyのほうで変わってしまった経緯が気になるところです。
>もしもその辺を調べられそうなポインタがありましたら教えてください。
詳しい経緯はわかりませんが、これが参考になるかもしれません。
http://lists.sourceforge.jp/mailman/archives/anthy-dev/2004-December/001522.html
0445名無しさん@Vim%ChaliceNGNG
Windows版gvimで
set shell=c:\cygwin\bin\bash.exe
set shellcmdflag=--login\ -c
としていて、一応これで!コマンドが使えるのですが、
bashのカレントディレクトリが常に$HOMEになってしまいます。
gvimのカレントディレクトリ下でコマンドを実行させる方法はないでしょうか?
0446名無しさん@お腹いっぱい。NGNG
--login
0447おみくじは 【大吉】 お年玉は 【639円】 NGNG
あけおめ
0448 【大吉】 【1377円】 NGNG
どないじゃい
0449 【凶】 【868円】 NGNG
そういうのは雑談スレでやるんだよもん
0450名無しさん@Vim%ChaliceNGNG
>>446
--loginをとると~/.bash*が読み込まれず、パスも通らない
ようなのですが。
0451名無しさん@お腹いっぱい。NGNG
--loginつけるから $HOME になるんだろ
vimじゃなくてbaseの問題だよ
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でも突っ込んでおいたらみんな書き込むかなぁ…
■ このスレッドは過去ログ倉庫に格納されています