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

Vim Part14

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2007/03/19(月) 20:09:27
立ててみた。

http://www.vim.org/

前スレ
http://pc10.2ch.net/test/read.cgi/unix/1151423973/

0364KoRoN@Vim%Chalice ◆8XALICEsdk 2007/07/22(日) 20:27:07
>>363
ありがとうございます。修正しました。

ところで、morazさんのVim情報集の移転先をご存知の方はいらっしゃいませんか?
0365名無しさん@お腹いっぱい。2007/07/22(日) 22:59:35
偶数行 or 奇数行だけに
行頭に文字列を追加する方法ってないですかね?

 s/^/strings/
↑ここでうまいアドレス指定方法があればと
 思っているのですが。
0366名無しさん@お腹いっぱい。2007/07/22(日) 23:31:19
>>365
%g//if line('.') % 2 == 0 | s/^/strings/ | endif
0367名無しさん@お腹いっぱい。2007/07/22(日) 23:45:31
:%s@.*\n.*\n@moge&@g
こんな感じでいいと思うけど、ファイルの最後でちょっと
うまくいかないな。
Vim6 Part10 >>304あたりに「2行おきづつ改行」する方法が載ってた。
0368名無しさん@お腹いっぱい。2007/07/22(日) 23:49:36
>>366
ありがとうございます。
無事に出来ました。

こんな書き方も出来たんですね。
もっと勉強します。
0369名無しさん@お腹いっぱい。2007/07/22(日) 23:54:28
>>367さんもありがとうございます。
出来ることを確認しましたが、
僕の今の知識じゃ、理解しえないみたいです。。

vimの使いかた、もっと調べます。
03703632007/07/23(月) 07:39:47
>>364
修正ありがとうございます。

Vim7ヘルプ配布所、VimWikiのリンクページに追加してきました。
問題があれば適当に直してくださいです。
0371名無しさん@お腹いっぱい。2007/07/26(木) 00:02:30
すみませんが質問させてください。
香り屋のgVimを使っているのですが、sort等の外部コマンドが無い状況でVimだけで以下のようなことがえきるかおしえてください。
もしできるのであれば、やり方も教えていただけるとありがたいです。

--------------------------------------------------------------
..hoge1 {
hoge- hoge
geho- geho
}
..hoge2 {
hoge- hoge
geho- geho
}
--------------------------------------------------------------
上記のようなテキストがあるとします。
そのテキストの中の{}に囲まれた行をソートしたいです。 {}で囲まれた部分は複数行あり、
{}はファイルの中にいくつもあり、その中を全てソートしたいです。 また、{}の前の「..hoge1, ..hoge2」もソートしたいです。
その際には、..hoge1等についている{}の中身はそのhoge..1と一緒に移動させたいです。

もう一つ質問なのですが、
.hoge1
.hoge2
.hoge3
等とある文字列の後に数値をつけて、その数値を大きくしていき指定行数挿入したいのですが方法はありますででしょうか?
数値だけでもカウントアップできれば、後で数値の前に文字列をつければいいと思うので、上記ができない場合は
数値だけでもできる方法を教えていただけるとありがたいです。
どうかよろしくおねがいします
0372KoRoN@Vim%Chalice ◆8XALICEsdk 2007/07/26(木) 01:56:49
>>371
7.1は組み込みのsortがあるので、恐らくできます。

1. {}の内側のソートはこんなかんじ

    :g/{/ .+1,/^}/sort

2. {}ブロックのソートはこんなかんじ

    :g/{/ .,/^}/-1s/\n/^A/
    :%sort
    :%s/^A/\r/g

上記の^Aは<CTRL-V><CTRL-A>とタイプして入力してください。

3. .hoge1の行で次のようにタイプしてください。

    qa0yyp<CTRL-A>q99@a

途中の99の部分は{繰り返したい回数-1}に置き換えてください。
0373名無しさん@お腹いっぱい。2007/07/26(木) 17:34:30
foo [bar]
hoge [huga]
...

というテクストを

bar.foo
huga.hoge
...

というように並び替えたいんですが,
vim の置換ではどうやればいいでしょうか?
0374名無しさん@お腹いっぱい。2007/07/26(木) 17:55:53
:%s/\(\w\+\)\s*\[\(\w\+\)\]/\2.\1/
\w([0-9A-Za-z_])でなくて\S(空白以外)にした方がいいかもしれないけど。
03753732007/07/26(木) 18:05:43
それでできました.
ありがとうございます.
0376名無しさん@お腹いっぱい。2007/07/27(金) 15:08:53
ywで単語をコピーしたあと、
:!grep (コピーした単語) ./*
を実行するときコピーした単語をペーストするにはどうしたらいいですか?
0377名無しさん@お腹いっぱい。2007/07/27(金) 15:31:18
<C-r>"
0378名無しさん@お腹いっぱい。2007/07/27(金) 15:50:13
>>377
できましたありがとうございました。
0379名無しさん@お腹いっぱい。2007/07/28(土) 11:16:53
NERD_tree.vimのようなエクスプローラを表示するプラグインで、
表示するドライブを切り替えるにはどのようにすればいいか分かる方いませんか?
WindowsでVim7をC:ドライブにインストールしていて、D:ドライブを見たい時に困っています
03803792007/07/29(日) 10:07:37
とりあえず自己解決
結局ドライブの切り替えは標準の機能でできそうにないので
D:ドライブを引数にして開くコマンドを別に割り当てて対応しました
0381名無しさん@お腹いっぱい。2007/07/31(火) 07:17:33
:sp でウインドウ分割(2分割)しているときに、
現在のカーソルがあるウインドウじゃないほうを閉じたいス。
教えてス。
0382名無しさん@お腹いっぱい。2007/07/31(火) 07:27:14
>>381
gvim(windows)ではCtrl+W に o で閉じられますた。
他の環境は知らないけど。
0383名無しさん@お腹いっぱい。2007/07/31(火) 12:45:41
slackware使いなのだが、最新版にしたら、vimのやつ勝手に
行末のCRLF を解釈するわ、tex だの html だのを解釈するわ
で、機能を切るのに大汗かいた。エディタなんて普段は何も
しないのがよい。デフォルトに余計な機能を設定してほしく
ないんだが。
0384名無しさん@お腹いっぱい。2007/07/31(火) 12:48:30
slackなのに細かいんだな
0385名無しさん@お腹いっぱい。2007/07/31(火) 13:15:26
> 行末のCRLF を解釈するわ、tex だの html だのを解釈するわ
それデフォルトじゃないから
0386名無しさん@お腹いっぱい。2007/07/31(火) 13:24:31
slackというより vim そのものが、7.1版になってスタートアップで
いろいろな機能をonにするように設定して配布しだしたんじゃないか
な。作者としてはせっかく苦労して作った機能だから試してもらいた
いんだろうけど、それを切る方法を知らない使用者にはたまったもの
ではない。
0387名無しさん@お腹いっぱい。2007/07/31(火) 13:30:15
>>385
そうだろう、半年まえまではこんなのデフォルトじゃなかった。
それが vim7.1になって、/usr/share/vim/vim71/filetype.vim
でファイルタイプ自動検出するのをデフォルトにしてやがる。
0388名無しさん@お腹いっぱい。2007/07/31(火) 13:42:45
improveしないviはただのviだ。
03893872007/07/31(火) 13:45:53
あ、上はちょっと誤解のある書き方かな。filetype 検出の
直接の元凶は vim7.1に標準添付されていた(と思われる)
/usr/share/vim/vimrc の中で、
"Enable file type detection.
filetype plugin indent on
としている件だ。
0390KoRoN@Vim%Chalice ◆8XALICEsdk 2007/07/31(火) 14:09:54
slackwareでの、vimのパッケージメンテナの趣味が変わったのでは?
素のvimは、ほんとにデフォルトだと何にもonになってませんよ。
0391名無しさん@お腹いっぱい。2007/07/31(火) 16:25:30
つーかrcファイルなんて気に食わなければ手で書き換えればいいじゃん
03923872007/07/31(火) 17:35:27
>>390
調べたらご推察どおりだった。以前は slackではシステムワイドで
vimrc を設定していなかったのに、slackware 12.0 になって
わざわざ /usr/share/vim/vim71/vimrc_example を
/usr/share/vim/vimrc にコピーしてくれていた。まさにしく
メインテナーのPat氏の趣味が変わったのだった。
>>391
わかってしまえばそのとおりなんだけど、知らなかったもんで
原因追求にてこずったんだ。straceでvimの発行するシステム
コールを追跡してやっと見つけた。
0393名無しさん@お腹いっぱい。2007/08/02(木) 09:58:32
環境は、
Vine Linux 4.1
VIM - Vi IMproved 6.4
で、SynapticパッケージマネージャでGVimをインストールした以外は
デフォルトのままです。

日本語入力したあと、Escキーでコマンドモードに戻るときに、
自動的に日本語入力(Anthy)をオフにしたいんですが、できますでしょうか。

WindowsのGvim(Kaoriya版)を使っていたときは、
Escキーを押したときにIMEをオフにしてくれていて便利だったので・・。

よろしくお願いします。
0394名無しさん@お腹いっぱい。2007/08/02(木) 14:49:13
vi協調モードを有効にする
0395名無しさん@お腹いっぱい。2007/08/02(木) 18:53:06
質問なのですが、
Vim7で、印刷時の行間を調節する方法はないですか?

WindowsのGUI版だと画面表示の行間の調整はあるみたいですが
印刷のときの設定は見つからなかったので…
0396名無しさん@お腹いっぱい。2007/08/02(木) 23:36:02
LustyExplorer.vimはWindowsで使えない?
なんかコマンド実行でエラー出ますけど
ぐぐると同じ現象が報告されてるので私だけでは無さそう
なんとかならないのか
0397名無しさん@お腹いっぱい。2007/08/02(木) 23:38:12
>>396
知るか
0398名無しさん@お腹いっぱい。2007/08/02(木) 23:47:00
MiniBufExplorerで満足している人間が大半ということかしら
そもそもWinユーザがいないのか
0399名無しさん@お腹いっぱい。2007/08/02(木) 23:47:18
汁か!
Sealか?
「死」要るか?
0400名無しさん@お腹いっぱい。2007/08/02(木) 23:51:11
はいはい わろすわろす
あなたはもういいよ
0401名無しさん@お腹いっぱい。2007/08/03(金) 10:40:36
>>394
Vine 4.1のデフォルトはscimだからダメみたいよ。
0402名無しさん@お腹いっぱい。2007/08/03(金) 17:37:02
>>396
それ、中身はまんまRubyスクリプトで、
使ってるライブラリがWindows対応してないから使えなさそ
04033812007/08/04(土) 00:15:12
>>382
出来ました。ありがと。
0404名無しさん@お腹いっぱい。2007/08/04(土) 00:31:56
C-w vでウィンドウを縦分割したとき、
カレントウィンドウの横幅を変えたいんだけど
どうすればいいでしょうか
0405名無しさん@お腹いっぱい。2007/08/04(土) 00:41:59
C-w >かC-w <
0406名無しさん@お腹いっぱい。2007/08/04(土) 00:57:13
>>405
ありがとう!
0407名無しさん@お腹いっぱい。2007/08/04(土) 10:07:42
>>405
繰り返し行いたい場合はどうしたらいいですか?
何回もC-w > をやるんですかね。
0408KoRoN@Vim%Chalice ◆8XALICEsdk 2007/08/04(土) 10:19:55
>>407
Vimの基本で、繰り返したいコマンドの前に繰り返しの回数を入力してください。
19 <CTRL-w> >
0409名無しさん@お腹いっぱい。2007/08/04(土) 21:17:17
>>408
どうもありがとうございます。
0410名無しさん@お腹いっぱい。2007/08/05(日) 22:15:33
マウスのドラッグ&ドロップで選択箇所のテキストを移動、ってできませんかね?
0411名無しさん@お腹いっぱい。2007/08/05(日) 23:06:50
意味がわからないんだが
具体的に説明してくれ
0412名無しさん@お腹いっぱい。2007/08/05(日) 23:11:49
>>410以上にうまく説明できないが
とりあえずそれはできない
0413名無しさん@お腹いっぱい。2007/08/05(日) 23:15:07
410じゃないが

テキストをドラッグして範囲選択
→選択したテキストをドラッグ(カット)
→ドロップ(ペースト)

ってことだろう。
0414名無しさん@お腹いっぱい。2007/08/05(日) 23:28:06
そんな作業でホームポジションから手を離したいと思う人もvimを使うんだなぁ
04154102007/08/06(月) 00:50:52
自分はまだVimに興味があるだけで、実際にはほとんど使っていません。
これまではほとんどマウスで操作していたので、
移行の過程でこのドラッグ&ドロップも使えればなと思った次第です。
無理のようなのでとりあえずマウスは諦めます。
0416名無しさん@お腹いっぱい。2007/08/06(月) 00:55:43
最初は使いづらくてもvim流のやり方でやらないといつまでたっても慣れないよ
0417名無しさん@お腹いっぱい。2007/08/06(月) 01:02:37
>>416
こういう物言いはvimメーリングリストとかでは見ないんだが
koronの受け売りのつもりかな。
0418名無しさん@お腹いっぱい。2007/08/06(月) 08:09:17
>>413
それって、gvimの編集メニューの切り取り、貼り付けじゃ駄目ってことなの?
04194132007/08/06(月) 09:25:41
(´・ω・`)しらんがな
0420名無しさん@お腹いっぱい。2007/08/06(月) 15:44:39
だいたい画面スクロールしただけで選択範囲がついてくるような仕様だしなあ
0421名無しさん@お腹いっぱい。2007/08/06(月) 15:50:50
UNIX板なのにマウス使うような奴ばっかなの?
0422名無しさん@お腹いっぱい。2007/08/06(月) 16:22:53
Windowsからターミナルで使ってるからset mouse=aやってる
0423名無しさん@お腹いっぱい。2007/08/06(月) 21:30:09
>>418
右クリックとかメニューバーを使わなくても
ドラッグさえすれば移動できるってのがミソだから。
あれはあれで便利なんだろうが、あれが好きな人はVimとは相容れない気がする
0424名無しさん@お腹いっぱい。2007/08/06(月) 21:39:45
ドラッグドロップ使ってる人って多いのかなあ
GUIユーザも普通Ctrl-C, Ctrl-Vじゃね?
0425名無しさん@お腹いっぱい。2007/08/06(月) 21:52:51
>>421
んなこたーない
0426名無しさん@お腹いっぱい。2007/08/06(月) 23:33:38
>>424
んなこたーない
Ctrl-C, Ctrl-V はデフォの機能が割り当てられとる
0427名無しさん@お腹いっぱい。2007/08/06(月) 23:56:30
範囲選択でコピー、中ボタンでペーストならよくやる。
コピーするのにキー押さなくてもいいのでwindows式より気にいってる。
0428名無しさん@お腹いっぱい。2007/08/07(火) 06:01:30
>>427
知らなかった。これは便利だ。
0429名無しさん@お腹いっぱい。2007/08/07(火) 06:04:57
ここは本当にUNIX板か?
0430名無しさん@お腹いっぱい。2007/08/07(火) 07:30:07
だからソフ板のスレと統合しろと(ry
0431名無しさん@お腹いっぱい。2007/08/07(火) 09:02:11
X式の選択しただけでコピーって初めは合理的だと思ったけど
誤操作の弊害の方が多いよね。
0432名無しさん@お腹いっぱい。2007/08/07(火) 10:51:22
>>426
いやいやVimユーザじゃなくて、一般的なGUIテキストエディタユーザの
話な
0433名無しさん@お腹いっぱい。2007/08/07(火) 10:53:17
>>431
同意。どうせマウス使う時は左手が開いてるんで、左手でショートカットキーを
操作するのは手間でも何でもないし
0434名無しさん@お腹いっぱい。2007/08/07(火) 22:16:37
vimに関係のない話はよそでやってちょ
0435名無しさん@お腹いっぱい。2007/08/08(水) 08:12:58
ごめん、linux 使っているけど
behave mswin
source $VIMRUMTIME/mswin.vim
だよ、俺。
0436名無しさん@お腹いっぱい。2007/08/08(水) 12:26:51
質問させてください。
Undo履歴をvim終了後も保持する事はできますか?
まだまだ起動したまま編集する事に慣れてないので、これができればかなり便利だなぁと。
ちなみにsessionやviminfoにはそういう項目はないようです、、
0437KoRoN@Vim%Chalice ◆8XALICEsdk 2007/08/08(水) 13:40:23
>>436
ないです。

  ttp://www.vim.org/sponsor/vote_results.php

を見るとわかりますが、今一番要望されている機能なので、次のバージョンアッ
プで実装される可能性が高いのではないでしょうか。
0438名無しさん@お腹いっぱい。2007/08/08(水) 22:11:58
:!grep -n (文字列) ./*c ./*cpp ./*h
でヒットしたファイルの中から自分の見たいファイルを
何番目にヒットしたかの番号の指定、もしくはマウスクリックで
ヒットした文字列の位置にカーソルがある状態で
即座に開いて編集したいんですがそういうツールを作ってください
0439名無しさん@お腹いっぱい。2007/08/08(水) 22:37:18
>>438
まずは、マニュアルを一通り読むことを勧める。

:h grep
:h 'grepprg'
:h :clist
:h :cc
0440名無しさん@お腹いっぱい。2007/08/08(水) 23:35:28
コマンド行で矢印キーを使わない方向で文字を消さずにカーソル位置を手前に戻すにはどうしたらいいですか
0441名無しさん@お腹いっぱい。2007/08/09(木) 00:07:03
マップするしかないんじゃない。
:cnoremap <c-b> <left>
0442名無しさん@お腹いっぱい。2007/08/11(土) 01:55:49
「au BufEnter〜」で指定している処理から
NERD_treeで表示しているツリー部分のみ除外したいんですが、
どのように指定したらよいでしょうか?
04434422007/08/11(土) 02:04:05
ちなみに指定している処理は、カレントディレクトリを自動的に移動するこいつです。
au BufEnter * execute ":lcd " . expand("%:p:h")

if bufname() ~= "NERD"とか条件付けてやってみましたがダメでした。
NERD_tree部分は:lsにも名前が出てこないので扱いがよく分かりません。
0444名無しさん@お腹いっぱい。2007/08/11(土) 22:16:47
au BufEnter *  if bufname("%") !~ "NERD_tree" | cd %:p:h | endif
でできた。
ちなみに lcd するなら if の後に isdirectory(expand("%:p:h"))
も付けといた方がいいかも。
04454422007/08/11(土) 23:02:42
>>444
うぉぉ、素晴らしい。やりたかったのはまさにこれです。
ありがとうございます!

ちなみに、ifの後に付けるというのはどのようにすれば・・・orz
and条件は効かない(?)ようなので、ifを入れ子にするということでしょうか?
04464422007/08/12(日) 00:00:43
上記の件、andじゃなくて&&を使えば良かっただけみたいですね。
以下のようにしました。もし間違ってたら教えてください。
au BufEnter * if isdirectory(expand("%:p:h")) && bufname("%") !~ "NERD_tree" | cd %:p:h | endif
ヘタレで申し訳ない。精進します!
0447名無しさん@お腹いっぱい。2007/08/13(月) 11:12:00
subversion関連のvimスクリプトを使ってみたいんだけど、
vcscommand.vimとsvncommand.vimの違いがよく分からん
ほかにもいくつかsubversion関連のスクリプトは有るようだけど、何使ってる?
0448名無しさん@お腹いっぱい。2007/08/15(水) 06:47:30
暇だから 6.0 から 7.1 までのパッチの数を月別に数えてみたよ

01: 153
02: 268
03: 225
04: 184
05: 78
06: 92
07: 87
08: 93
09: 101
10: 231
11: 120
12: 65

メーリングリストの流量とも比例している
http://blog.gmane.org/gmane.editors.vim
http://blog.gmane.org/gmane.editors.vim.devel
0449名無しさん@お腹いっぱい。2007/08/15(水) 20:19:02
( ´ー`) <おまえも暇なやつだなあ。
0450名無しさん@お腹いっぱい。2007/08/15(水) 20:48:07
:bnとか:bpって、始めや最後のバッファで実行すると
反対側にジャンプしてくれるじゃないですか。
これを、あえてジャンプしないようにするってことはできませんかね?
0451名無しさん@お腹いっぱい。2007/08/17(金) 00:25:34
10行目から15行目までをヤンクしたいとき、
10行目に移動して6yyみたいにしてるのですが、
:10,15みたい範囲指定でヤンクする方法はないでしょうか?
0452KoRoN@Vim%Chalice ◆8XALICEsdk 2007/08/17(金) 00:28:55
>>451 もう自分で気が付かれたかもしれませんが。
:10,15y
0453名無しさん@お腹いっぱい。2007/08/17(金) 02:24:29
>>452
ありがとうございます!
あと一歩のところで気づきませんでした。
これでかなり作業が楽になります。
0454名無しさん@お腹いっぱい。2007/08/17(金) 08:05:16
Vy ばかり使っている。堕落したな、俺。
0455名無しさん@お腹いっぱい。2007/08/17(金) 09:51:18
便利なものを使うことは悪いことではない。
0456名無しさん@お腹いっぱい。2007/08/17(金) 17:30:52
たまにコンソール作業とかで素のvi使うと一番戸惑うのはVが使えないことだな
次はggで先頭に飛べないこと

でも逆に言えばその2つくらいで他は普通に使えてしまう
0457名無しさん@お腹いっぱい。2007/08/17(金) 17:57:33
Vyってyyと何が違うの
0458名無しさん@お腹いっぱい。2007/08/17(金) 20:52:42
Vhogehogeyを略して言ったんでしょ
0459名無しさん@お腹いっぱい。2007/08/17(金) 21:49:36
Vh でエラーになり、以降の ogehogey が無効な気がする。
0460名無しさん@お腹いっぱい。2007/08/17(金) 21:52:57
>>456
> ggで先頭に飛べないこと

禿同。最近までFreeBSDマシンの1つにvimを入れずに使ってたんですが、編集する度
にggと叩いてしまう自分に、その度に愕然としてました。
0461名無しさん@お腹いっぱい。2007/08/17(金) 21:55:48
Emacsのviper-modeがいいよと言われたので使ってみたらggで先頭に飛べなかった
すぐVimに戻ってきた
0462名無しさん@お腹いっぱい。2007/08/17(金) 23:01:04
同じ2文字でも1Gとggではタイプのしやすさが全然違うからなあ
0463名無しさん@お腹いっぱい。2007/08/17(金) 23:09:42
1Gよりは:0<C-M>の方がまだ指に優しいかも
■ このスレッドは過去ログ倉庫に格納されています