トップページ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/

0341KoRoN@Vim%Chalice ◆8XALICEsdk 2007/07/19(木) 01:06:13
>>340
そのリストってどうやって作ったんですか?

後半についてはチェックしときます。
03423402007/07/19(木) 10:28:01
>>341
リスト自体は自前のプログラムで作ってます。
iconv.dllのlibiconvlistを呼んで、コールバック関数の中でiconv_canonicalizeにより
canonicalizeした名前を得ています。

アーカイブのcanonical.hの92行目あたりを見てみたのですが、

(int)(long)&((struct stringpool_t *)0)->stringpool_str426, (GBKに対応)
(int)(long)&((struct stringpool_t *)0)->stringpool_str354, (GB18030に対応)

となっていて、iconv -l で出力されるリストに含まれる 'CP936 MS936 WINDOWS-936'
に対応するcanonicalizeした名前が漏れている感じです。
0343KoRoN@Vim%Chalice ◆8XALICEsdk 2007/07/19(木) 12:04:09
CVSのHEADから持ってきたソースで、canonical.hは生成が必要な部分でしたから、な
んかおかしなところがあったと考えると納得いきます。で久しぶりにcvs updateして
みたら、VC++がサポートから外されてて愕然としました(笑

POSIX iconvの別の実装を使うことを含めて検討するので、修正にはちょと時間がか
かりそうです。ごめんなさいorz
03443402007/07/19(木) 13:58:04
ありがとうございます
気長に待ちますねー
0345名無しさん@お腹いっぱい。2007/07/19(木) 14:24:41
iconvってerrno使うのが個人的にはボミョウ
0346名無しさん@お腹いっぱい。2007/07/19(木) 14:57:00
Open Tech Press | Vimマスターへの道
http://opentechpress.jp/special/article.pl?sid=07/07/18/0849244
0347名無しさん@お腹いっぱい。2007/07/19(木) 23:11:47
コマンドモードで検索する後に / って打ちますが
その後の検索文字列を貼り付けで入れることってできまつか?
0348名無しさん@お腹いっぱい。2007/07/19(木) 23:18:57
Shift + Insert でできない?
0349名無しさん@お腹いっぱい。2007/07/19(木) 23:27:12
windowsのgvim使っていたんですが
Shift + Insert でできました^^
クリップボードの内容がはりつけられたんですが
ヤンクした内容をはりつけられないです。
クリップボードにヤンクする方法とか知りませんか?
質問が変だったらごめんなさい。
0350名無しさん@お腹いっぱい。2007/07/19(木) 23:35:25
事故解決しました。"*yy
0351名無しさん@お腹いっぱい。2007/07/20(金) 07:55:40
そういえば、Windows版では C-v とペーストのつもりでやってしまふ。
ワスは vim の範囲指定(C-v)も多用する人なので、指が混乱する。
0352名無しさん@お腹いっぱい。2007/07/21(土) 01:17:12
vimで、あらかじめ登録したキーワードを必要なときに自動入力させる方法ってないでしょうか?

たとえば、abcdeというキーワードを登録しておいて、
コマンドモードで、
!hoge
とすると、
abcdefg
という文字列が自動入力させるようなことです。

vimが終了しても、登録したキーワードが消えない方法がいいです。

よろしくご享受お願い致します。
03533522007/07/21(土) 01:47:58
自己解決しました!

.exrcに
map! hoge foo
のように登録しておいて、
viの入力モードで、hogeとキータイプすると、fooと自動入力されます。

0354名無しさん@お腹いっぱい。2007/07/21(土) 06:40:32
mapよりabbrevの方が便利だよ
mapだと"host"みたいに途中まで"hoge"と同じ文字列を打鍵した時しんどいで
0355名無しさん@お腹いっぱい。2007/07/21(土) 08:58:16
Ctrl+DとかCtrl+Fでスクロールするとき、パッと移動するんじゃなく
滑らかにスクロールさせるようにできないかね
ブラウザのページダウンみたく

どうも、どのくらい移動したのか把握しづらいんだよな
03563552007/07/21(土) 10:52:17
Smooth Scroll : vim online
http://www.vim.org/scripts/script.php?script_id=1601
Vim documentation: tips
http://www.ac.cyberhome.ne.jp/~yakahaira/vimdoc/tips.html#scroll-smooth

ここら辺だと思うんだけど、ぜんぜん効果が確認できん
0357名無しさん@お腹いっぱい。2007/07/21(土) 10:53:00
正直あまり欲しいとは思わんが一応
:h scroll-smooth
とかゆーとく
0358KoRoN@Vim%Chalice ◆8XALICEsdk 2007/07/21(土) 13:21:02
>>343
> POSIX iconvの別の実装を使うことを含めて検討する

POSIX互換ではありませんがapr_iconvを検討してます。
0359名無しさん@お腹いっぱい。2007/07/21(土) 18:11:43
Gでファイルの末尾に飛びますが、
逆にファイルの先頭に飛ばすコマンドを教えてください。
0360名無しさん@お腹いっぱい。2007/07/21(土) 18:13:46
1Gかgg
0361名無しさん@お腹いっぱい。2007/07/21(土) 20:34:48
>>359
埼玉大学
0362名無しさん@お腹いっぱい。2007/07/21(土) 22:39:52
mzschemeってうまく動く?
0363名無しさん@お腹いっぱい。2007/07/22(日) 19:08:58
Vim7のヘルプ配布所がVimWikiからリンクされてないみたいだけど
追加してきて宜しいか?
ついでに、kaoriyaさんちの名無しのVIM使いさんへのリンクは古いですよ
お手すきなときに直していただければこれ幸い

Vim documentation: help
http://www.ac.cyberhome.ne.jp/~yakahaira/vimdoc/
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
コマンド行で矢印キーを使わない方向で文字を消さずにカーソル位置を手前に戻すにはどうしたらいいですか
■ このスレッドは過去ログ倉庫に格納されています