トップページunix
994コメント386KB

Vim6 Part6

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

前スレ
http://pc.2ch.net/test/read.cgi/unix/1045365370/

関連情報は>>2-6あたり。
0291名無しさん@お腹いっぱい。NGNG
>>290
挿入モードなら直感的なんですが、ノーマルモードでこれをやると・・・
うーん、Windowsってこんなだったっけか?
私もほぼ使わないんで(ぉぃ)、まぁどっちでもほぼ困らないんですが(^^;
0292KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>291
VS.NETのエディタ部で上書きモードにしてカーソルを四角くして、右クリック→貼り
付けをやってみましたけど、同じ位置に挿入されましたよ。
0293名無しさん@お腹いっぱい。NGNG
>>292
わざわざ検証して下さってどうもです。
VSは持っていないし、それはおろかテキストを編集するもの
といえばGVIMしかさわってないので、まったくわかりません
でしたが、そういうことならば得心がいきます。
0294283@Vim%ChaliceNGNG
kinput2のバージョンはversion 3.1 (2002/10/03)でした。
6.1.12(だっけ?)を使ってたころには凍るようなことはまずなかったと
思ったんですけどねー。
有効なデータが取れたらまた現れます。どうもでした。
0295名無しさん@お腹いっぱい。NGNG
おお、今の今までwindows版には右クリックメニューなるものがあることすら
気付いてなかたーよ…
0296KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>294
ザックリとパッチをチェックしてみましたが、それらしいところは見あたりませんで
した。もしも追加の再現条件が判りましたらお知らせください。

>>295
Windowsに限らずgvimではメニューがでます。:help popup-menuには書いてないけど
OSXでもCtrl+クリックで出ました。
0297名無しさん@お腹いっぱい。NGNG
ふみゅ、:se mousemodel=popup すると出るですね。
でもextendでいいや(笑
0298名無しさん@お腹いっぱい。NGNG
:S で、ファイラ(?)モードになって、選択したファイルをエディット
する際にフルスクリーンにするにはどうしたら良いでつか?
0299名無しさん@お腹いっぱい。NGNG
>>298
Kaoriya版ならSM 4とかSM 5はどうよ?
元に戻すにはSM 0ね。間にスペースが無くてもいい。

正確にはScreenModeというコマンド。
 $VIMRUNTIME/plugin/scrnmode.vim
で定義されてる。
0300名無しさん@お腹いっぱい。NGNG
300ゲトズザ
0301209NGNG
kaoriya 版じゃないときは??? SM プラグインを入れれば良いでしょか?
# Sexp と SM ...
0302298NGNG
あぁ、209 じゃないですね。
0303KoRoM@Vim%ChaliceNGNG
>>301
次のスクリプトをダウンロードしてください。

ttp://www.kaoriya.net/testdir/hardcore.vim
0304名無しさん@お腹いっぱい。NGNG
v
i
0305KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>303 _| ̄|○ …「そんなスクリプト置いたか?」って騙された
0306294@Vim%ChaliceNGNG
無 知 な自分を 鞭 打 っ て 、初めてgdb使ってみました。
# だってjmodeがコンパイルできなかったんです
IMオン中にEscで凍るときは、SIGINT送ってbacktraceしたらregexec()から帰らない(?)
それからどなたかの:qでエラーメッセージがループするという症状、
私もよくそうなるのですが、これについて試してもregexec()から抜け出ないようだ(?)
gdbの使いかたなんて何も知りませんが、何かの足しになれば幸いです。
# もっと勉強しなきゃな。変数の見方が分からない...
それにしてもなぜ本体ソースにないPOSIX関数が?

ありゃ今コンソール上のvimにやってみたら
0x40455bb2 in select () at regexec.c:1531
1531    regexec.c: No such file or directory.
        in regexec.c
と出ました。これはKoRoN殿の守備範囲ではなく、ライブラリの不備かも?
0307KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>306 OSはなんですか?
0308名無しさん@お腹いっぱい。NGNG
レベルの高い質問の中、凄く下らない質問で恐縮なんですが以下のような状態でemacsをvimにする場合どうすれば宜しいでしょうか。

emacs
emacs
vim

最初はvimをヤンクしてemacsをvで選択してペーストすればいけると思ったんですがペーストすると何故か
ペースト先のemacsを今度はヤンクしてしまい二つ目のemacsをvimに出来なくなってしまいます。
やはり名前付きレジスタにヤンクしないとダメでしょうか・・・
気軽にやりたいんですがあまりに複雑になると:s使った方が楽という結論になりそうで・・・
0309名無しさん@お腹いっぱい。NGNG
最初のeの上にカーソルを持っていき
 cwvim[ESC]+.
と打つ。
+は次の行の先頭単語に行く。
.は前のコマンドを繰り返す。ここではcwを繰り返すことになる。

もしくはemacs2行分をVで選択して
 cvim<Return>vim<Esc>
と打つ。2個くらいならこれでも良いが多いとやってられないな。

exコマンドならemacs2行分をVで選択して
 :s/emacs/vim/
と打つ。
実際には
 :'<,'>s/emascs/vim/
と見えるがそのまま打つように。
'<と'>はVisual選択行の開始行と終了行を意味する。
つまり範囲を指定してsubstituteしてるってわけ。

ファイル全体置換で良いなら
 :%s/emacs/vim/g
と打つ。
最後のgは1行内に複数個のemacsがあっても全部vimに変えるって意味。
0310名無しさん@お腹いっぱい。NGNG
>>309
すみません、308は例えが悪かったです。
実際は以下のような感じです。

nextStuff = this.ArgStf();
prevStuff = prev.ArgStf();

boolean skipPostArgumentStuff(...)

名前の統一を図るためにArgstfをPostArgumentStuffにしたいという場面です。
win系エディタではPostArgumentStuffを選択して<C-C>でコピーしてArgStfと書いてある
ところをマウスのダブルクリックなどで選択<C-V>で次々に変えていくのが普通だと思う
のですがVimではどうやるのか皆目見当が付かない次第で・・・

:sはコピー元、コピー先の文字列が長い場合(最近の変数名やメソッド名は長いので・・・)
大変なので変更する数が少ない場合(2〜5くらい?)はコピペで凌ぎたいです。
また、309さんがおっしゃるようにArgStfを一回PostArgumentStuffに変更して検索と「.」で変更の
繰り返しをする場合も文字が長い場合は大変ですし、上記のように文字列の一部の場合は補完も効きません。

日常的に使っていて結構こういう場面があるのですがイマイチうまい方法が見つかりません。
何か良い方法あるでしょうか。
0311名無しさん@お腹いっぱい。NGNG
確かにインクリメンタルな補完は欲しい。
俺は地道にcwとfや,と.で修正してるな。
0312名無しさん@お腹いっぱい。NGNG
>>310
> :sはコピー元、コピー先の文字列が長い場合(最近の変数名やメソッド名は長いので・・・)
> 大変なので変更する数が少ない場合(2〜5くらい?)はコピペで凌ぎたいです。
":s"の後にマウスでも何でも使ってコピペすればいいんじゃないの。
# q:とか押してみると幸せになれるかも?
0313名無しさん@お腹いっぱい。NGNG
>>310
特定のレジスタ使ったコピー&ペーストする動作をマップしちゃうのも手。
0314306@Vim%ChaliceNGNG
>>307
Vine Linux SeedでGTK2 gVimです。これってやはり鬼門なのだろうか。
こんど雑誌か何か見てgdbの使いかた覚えますね。

>>310
もとのあなたのやっていたやりかたでOK。ただしペーストは"0pですること。
詳細は:he registers
たぶん他にも別の考え方に基づく解決策はあると思うけど。
あとコマンドラインに単語を送る方法は:he c_<C-R> の辺り。
0315名無しさん@お腹いっぱい。NGNG
:%s/sample/Sample/g
とした場合に、全部で何件置換したかがわかる方法ってありますか?
0316315NGNG
失礼しました。2ヶ所以上だと出るのですね。
0317309NGNG
>>310
名前の統一を図るって目的なら、やはりexコマンドで一括置換した方が良いよね?
となると、>>314の言うとおり<C-R>を使うのが手かな、やっぱ。
<C-R>はレジスタの値をコマンドラインに出してくれるのでこれを使う。

レジスタ0(直近のヤンク)はyなどでコピーした時、
レジスタ1(以降9まで)は削除や変更した時に使われる事を利用する。
詳しくは :help quote0 など。

まずArgumentStaffのAの上でdwP(or deP)としてレジスタ1に削除文字列をヤンクしてPで元に戻す。
次にArgStfのAの上でyw(or ye)としてヤンク。
これで、ArgumentStaffはレジスタ1に、ArgStfはレジスタ0に入っている。
内容は:regか:diで確認できる。

使うレジスタは逆でもいいし、別のレジスタを使っても問題ないけど、
名前無しレジスタにした方がタイプ量が少なくて済むよね。

あとは、
 :%s/<C-R>0/<C-R>1/g
でOKだと思う。

ほんとに書き換えて良いか1つ1つ確認したいなら最後にcを付けて
 :%s/<C-R>0/<C-R>1/gc
としましょう。
詳しくは :help s_flags で。
0318名無しさん@お腹いっぱい。NGNG
あ、ごめん >>317
 :s/ArgumentStaff/PostArgumentStaff/
で読んで。
0319名無しさん@お腹いっぱい。NGNG
>>311
自分も一回"aywなどでヤンクしたものをciw<C-R>aなどで変更、あとは.を使って以降の文字
を変更と言う方法と、308の名前付きレジスタ版を使っていました。
でも名前付きレジスタへのヤンクが面倒でw
他の人が教えてくれた0レジスタはそう言う意味で朗報でした。

>>312
> ":s"の後にマウスでも何でも使ってコピペすればいいんじゃないの。
マウスでコピペっていうのはどういう感じなのでしょうか?
まだ、使って日が浅いもので・・・

>>313
マップするにも割り当てるキーが・・・
それにあくまでもデフォルトでスッキリ使いたいという気持ちもあります。

>>314
ありがとうございます。
数字レジスタの働きを理解していませんでした。

それと:he registersを見ていて思ったんですが:letを使ったレジスタの書き換え便利そうですね。
vi vs emacsスレ(これを見てvimを使い始めましたw)でキーボードマクロの話が盛り上がって
いたのですが、vimもレジスタの演算が出来るのでかなり複雑なことをキーボードマクロで実現できるんですね。
驚きました。

>>317
たびたびのレス恐縮です。
数字レジスタ便利ですね。
ただ提示の方法は多少手間がかかりそうです。
これはこれで別の場面で役立てようと思ういます。
0320KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>310
答えが出てしまったようですが、私流のやり方では
  1. PostArgumentStaffの上で yaw して
  2. ArgStfの上で * して
  3. :%s//<C-R>"/g
こんな感じです。検索パターンを省略した場合は、最後に使われた検索パターン、この
場合は * で拾ったパターンが再利用されます。一つ一つ確認したい場合には:s///に
cフラグを付ける方法も考えられますが、
  1. ArgStfの上で * して
  2. cw + 補完でPostArgumentStaffに書き換え <ESC>
  3. n. で置換を繰り返す。
とするのが好みです。
0321名無しさん@お腹いっぱい。NGNG
>>320
レスありがとうございます。
:s//は知りませんでしたこれは便利です。
今回みたいな件ではやはり.を使った置換の方がやりやすいですがこの:s//は重宝しそうです。

> 2. cw + 補完でPostArgumentStaffに書き換え <ESC>
310で書いているとおりPostArgumentStaffはskipPostArgumentStuffの切り出しなので補完は効かないんですよ。
0322名無しさん@お腹いっぱい。NGNG
ということは、このばやい

1.Post・・・ の P のところで yw
2.ArgStf 上で *
3.cw <C-R>0<Esc>
4.n.n.・・・

って感じがいいですね。
321じゃないけど、いろいろ勉強になりました。
0323名無しさん@お腹いっぱい。NGNG
ヴぃmで行番号の色変える方法がわかりま千円。
0324KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>323
:hi LineNr
:help :hi
:help LineNr
を参照してください。
0325!323NGNG
ガイシュツですが、行番号も書式を指定出来るようになるといいですね。
「8桁も要らないYO!」とか「3桁毎に区切りきぼんぬ」とか
「漢は16進」とか「マーク位置からの相対行番号でよろしこ」とか。。。
0326KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>325
それを必要だと感じた人がBram氏もしくはvim-devへ提案したりパッチを書いて送らない
限り、それがどんなに素晴らしいアイデアだとしても実現することはあり得ません。

単に機能だけを提案するのではなく、それをどうやって既存の操作体系の中に組み込むの
か、オプションやフラグの新設等、併せて提案すると良いのではないでしょうか。
0327名無しさん@お腹いっぱい。NGNG

おかねもうけ情報見つけました

http://pocket.muvc.net/job/index.html
0328あぼーんNGNG
あぼーん
0329あぼーんNGNG
あぼーん
0330名無しさん@お腹いっぱい。NGNG
>>326
まあ、全員がvimハカーというわけでもないし、日本語で気楽にアイデアや希望を
出せるというのもこのスレ/2chという場の機能の内ってことで。

rulerformatみたいにしてnumberformatとかを設けるのが一番わかりやすいかな?

#しかし何でまた下がってたのに宣伝が・・・
0331KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>330
アイデアのまま希望のままで終わらせるか、一歩ずつでも実現のためにステップを踏んで
いくかの違いです。ここに書かれたことのうち、まっつんさんや私が必要だと判断した分
については実装される可能性が高いのですが、そうで無い分は実質的に握り潰されてしま
う形になります。でも中にはそうなってしまうには「もったいない」と思われるモノも相
当数有るんです。

ではそういうアイデアがどうやったら掬い上げられ実現されるかというと、提案者が自ら
実装しvim-devへ乗り込むか、コードを書いたりvim-devへ連絡を取ることに抵抗の無い人
間を説得するか、でしょう。前者は「全員がvimハカーというわけでもない」のだから、
誰もができるわけではない。となると必然的に後者です。

その時の説得材料として、
> それをどうやって既存の操作体系の中に組み込むのか、
> オプションやフラグの新設等、併せて提案すると良い
というわけです。もちろん完全なパッチがベストですが、実現コンセプトだけを示す仮想
コードや、仕様を示すドキュメントという選択肢もあるわけです。オプションについては
help用の説明書きがあるだけで、かなり印象が違います。これらは誰でもできますよね。

なので単にアイデアを言うだけでなく、かと言ってパッチを作ることに固執するのでもな
く、周辺部から、より具体的な形にしていく方向で提案し、議論を進めていくと良いと考
えます。

以上を踏まえた上で
> rulerformatみたいにしてnumberformatとかを設けるのが一番わかりやすいかな?
printfみたいに"7d"とか"06x"とか指定させると、ちょっと自由度が高過ぎではないで
しょうか。オプション設定時のエラー判定が複雑になり、面倒です。
0332名無しさん@お腹いっぱい。NGNG
http://vim.sourceforge.net/
???
のっとられたの?
0333名無しさん@お腹いっぱい。NGNG
>>332
いんにゃ、本気でprotestしてるんだと思うよ。
ソフトウェア著作権、ヨーロッパじゃかなり深刻な状況になりつつあるらしい。
0334KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>332-333 翻訳しました。
http://www.kaoriya.net/testdir/swpat.html
0335名無しさん@お腹いっぱい。NGNG
$VIM/vimrcに関してリクエストです。

vimrc_local_finishを使えば$VIM/vimrcを読み込まずに自分の設定を有効にできますが、
その場合にはknowhowが沢山詰まった
 日本語対応のための設定:
がスルーされてしまいます。

現状では、$VIM/vimrcの日本語設定を自身の~/_vimrcにコピーしてるのですが
これでは$VIM側が変更された場合に自身のもupdateする必要があります。

日本語設定は多分どんな環境でも同じだと思うので、
例えばこの設定より後にvimrc_local_finishの条件判定を入れる、
等の変更はできないでしょうか?
0336KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>335
> 日本語設定は多分どんな環境でも同じだと思うので、
> 例えばこの設定より後にvimrc_local_finishの条件判定を入れる、
> 等の変更はできないでしょうか?

enc設定のノウハウを含め、全て無効にする目的で設けたのがvimrc_local_finishで
す。ですからその提案方法は不採用です。

考えられるのは日本語用の設定だけを別ファイルにして読み込むようにするくらいです
が…結局どの設定を切り出すかは私のセンス如何に依存してしまいます。そうなるとそ
もそもvimrc_local_finishを使うのはその依存を断ち切る目的ですから、これと矛盾し
てしまうでしょう。そう考えると私の労力はまったくの無駄となるわけで、
vimrc_local_finishの動作をわかっているユーザさんの側で内容の同期を取ってもらっ
た方が合理的と言えるでしょう。

具体的に言うと、現行のencodeに関する設定を$VIMRUNTIME/encode_japan.vim等にまと
め、$VIM/vimrc内でsource $VIMRUNTIME/encode_japan.vimとするようにしたとしま
しょう。この時vimrc_local_finish+encode_japan.vimのユーザさんが、時間が経つに
つれ利用開始当初には想定していなかった設定が紛れ込むようになった時、それを良し
と思えるのか、ということです。
0337名無しさん@お腹いっぱい。NGNG
>>334
上から2行目ですけど
> 配布を辞めさせたり
これは「止めさせる」のほうが適当では?
0338KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>337 ありがとうございます。早速修正しました。
0339名無しさん@お腹いっぱい。NGNG
>>336
基本的には同意できるんですが
  > enc設定のノウハウを含め、全て無効にする目的で設けたのがvimrc_local_finishで
まで言いきるならばそれを望むユーザーが$VIMディレクトリの下に(g)vimrc_local.vim
を置くのではなく$HOMEの下(それもできれば.vimrcに書く変数かなにかで)で実現できるべきかと…

つまりそのようなユーザーはwin環境でもun*x環境でも自分の$HOME/.(g)vimrc, $HOME/.vim/
を使い回してその他の設定にはいちいち縛られたくないよーんみたいな…
0340KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>339
これらデフォルト設定ファイルの成り立ちには以下の歴史があります。
  1. 標準の$VIM/vimrcは初期導入コストの引き下げが目的。
  2. vimrcでしかできない一部の設定を覆すことが、vimrc_localの目的。
さらに以下の絶対的な拘束を受けてます。
  3. $VIM/vimrcは$HOME/.vimrcよりも必ず先に読み込まれる。
これらを考え合わせると
> を置くのではなく$HOMEの下(それもできれば.vimrcに書く変数かなにかで)で実現できるべきかと…
これは現状では不可能です。

ただしvimrc_localの読み込みタイミングで、$HOME以下の別ファイルを読みに行くことは
できるでしょう。

> つまりそのようなユーザーはwin環境でもun*x環境でも自分の$HOME/.(g)vimrc, $HOME/.vim/
> を使い回してその他の設定にはいちいち縛られたくないよーんみたいな…
ほとんどの設定は$HOME/.vimrcで上書できます。そこまでのヘビーユーザならば、
NetUpVimを含めた香り屋の提供する利便性に中途半端な依存はしないで、初めから自分の
手で設定すれば良い。というのが香り屋版の基本的なスタンスです。
0341339NGNG
>>340

> 1. 標準の$VIM/vimrcは初期導入コストの引き下げが目的。
> 2. vimrcでしかできない一部の設定を覆すことが、vimrc_localの目的。
これは分かります。

> 3. $VIM/vimrcは$HOME/.vimrcよりも必ず先に読み込まれる。
これは単純に$VIM/vimrcで、例えば
if filereadable($HOME . '.vim/no_kaoriya_vimrc') || filereadable($HOME . 'vimfiles/no_kaoriya_vimrc)
  finish
endif
とかできるわけです。

> ほとんどの設定は$HOME/.vimrcで上書できます。そこまでのヘビーユーザならば、
> NetUpVimを含めた香り屋の提供する利便性に中途半端な依存はしないで、初めから自分の
> 手で設定すれば良い。というのが香り屋版の基本的なスタンスです。
自分だけならそれで良いんですが、例えば他のユーザーに
「漏れの設定ファイル, ftpに置いといたから良かったら試してみてくれよ」
みたいな時に
「あ、でも君がKaoriya版使ってるなら$VIM/(g)vimrcを消すかvimrc_local作るように」
と言わなくて済むわけです。

そうしないと、例えばfencsのように、両者のvimrcで同じ値を
set xxx+=yyy をしていると二重定義になるのです。
# 実害はなさそうですが…

現状の
if filereadable($VIM . '/vimrc_local.vim')
も残しつつ、上記提案の「自分の$HOME以下で閉じられるようにする」というのを
加えるだけならば, 過去との互換性もあり特に不都合はないかと思うのですが…
0342名無しさん@お腹いっぱい。NGNG
> 自分だけならそれで良いんですが、例えば他のユーザーに
> 「漏れの設定ファイル, ftpに置いといたから良かったら試してみてくれよ」
> みたいな時に
> 「あ、でも君がKaoriya版使ってるなら$VIM/(g)vimrcを消すかvimrc_local作るように」
> と言わなくて済むわけです。
そんな頻度の少ない場面にどれほどの価値があるのやら。
それにたいした手間でもなかろう。

KoRoNさんのこの言葉どおりだと思うが。

> NetUpVimを含めた香り屋の提供する利便性に中途半端な依存はしないで、初めから自分の
> 手で設定すれば良い。というのが香り屋版の基本的なスタンスです。
0343KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>341
基本的には$HOME/.vimrc_first.vimを読む方向で考えていたのですが…

> 「あ、でも君がKaoriya版使ってるなら$VIM/(g)vimrcを消すかvimrc_local作るように」
> と言わなくて済むわけです。
見方を変えればそう言うだけで済むのです。そのレアケースのために

> 加えるだけならば, 過去との互換性もあり特に不都合はないかと思うのですが…
vimrcの「わかりやすさ」を低下させてしまう、というデメリットが生じるんです。
vimrcは、設定を弄ってみようというユーザが初めて読んでもヒかない程度の内容で
あるべきなのです。その意味で私は、vimrc_localの存在を設定ファイルのわかりや
すさという観点から良しとしていません。fencsの設定方法も同様です。

あなたのニッチな要求を満たす提案に、そういう副作用があることは忘れないでくだ
さい。

> そうしないと、例えばfencsのように、両者のvimrcで同じ値を
> set xxx+=yyy をしていると二重定義になるのです。
配ることを想定した.vimrcならば
set fencs&
set fencs+=...
のようにリセットしてから設定すれば済む話です。

ニーズがニーズなので、vimrc_firstの採用ついては再考します。
0344339NGNG
>>343
よくわかりました。

> 自分だけならそれで良いんですが、例えば他のユーザーに
> 「漏れの設定ファイル, ftpに置いといたから良かったら試してみてくれよ」
> みたいな時に
これは一例を挙げただけで、要は予期しないことが起こり得る可能性を
示唆したかっただけです。

KoRoNさんの功績は誰もが認めることだし、それに対して文句を言う
ことは誰にもできないでしょう。

一般的に、特定のLinuxのディストリとかでシステムデフォルトのvimrcを
つけてくる場合も含めて、それを回避できる手段が$HOME以下で閉じられた
方がいいかもなっていう感想を1ユーザーとして述べたと捉えて
頂ければ幸いです。

詳細な見解をレス頂けただけでも十分です。

これからもよろしくお願いします。
0345名無しさん@お腹いっぱい。NGNG
>>332-334
GnuPGのサイトも似たようなことになってるナ…
http://www.gnupg.org/
0346名無しさん@お腹いっぱい。NGNG
ionのサイトも。てかここは大分前から言及してたね。
http://modeemi.cs.tut.fi/~tuomov/ion/
0347KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>344
> 一般的に、特定のLinuxのディストリとかでシステムデフォルトのvimrcを
> つけてくる場合も含めて、それを回避できる手段が$HOME以下で閉じられた

話をそこまで一般的にするならば、それはKaoriYa版Vimに限らずの話ですから、ソー
スコードレベルでそういう仕組みが必要ということです。だとすれば既存の-u及び-U
オプションを使って、vim -u ~/.vimrcのようにスクリプトを書いたりエイリアスを作
ることで充分対応できますね。
0348名無しさん@お腹いっぱい。NGNG
>>345
http://pc.2ch.net/test/read.cgi/linux/1061982926/
0349名無しさん@お腹いっぱい。NGNG
:ls
1  h   "[無題]"                       行 1
2 %a   ".vimrc"                       行 21
3 #h   "share/vim/vimrc"              行 1
:b vim<tab>
この状態で補完すると、.vimrcとvimrcが選べます。
:ls
1  h   "[無題]"                       行 1
2 #h   "~/.vimrc"                     行 21
3 %a   "vimrc"                        行 1
:b vim<tab>
この状態で補完すると、vimrcしか補完されません。
.vimrcも補完できるようにするにはどうすればいいでしょうか?
6.2.71です。
0350名無しさん@お腹いっぱい。NGNG
Solaris8環境で、ユーザーディレクトリにlibiconvをインストールし、
Vimをインストールしたのですが、Vimがどちらのiconvを使っているか
調べる方法はないでしょうか?

また、ユーザーディレクトリのlibiconvを使ってVimをコンパイルする場合、
どうしたらいいのでしょうか?

SJISのファイルがどうやっても開けなくて、iconvを疑ってます..
0351名無しさん@お腹いっぱい。NGNG
>>350
Solarisのiconvではコード判定動かないね。俺も最初?だった。

>Vimがどちらのiconvを使っているか

ldd /usr/local/bin/vim とか。

>ユーザーディレクトリのlibiconvを使ってVimをコンパイルする

俺はconfigure後のsrc/auto/config.mkでLIBSに-L指定して誤魔化し
ちゃったけど。(実行時用にLD_LIBRARY_PATHの設定も必要)
0352350NGNG
>>351
そうか、lddで調べればいいんですね。
で、調べてみたら自分でインストールしたlibiconvは入ってなかったです。これが原因か!

>俺はconfigure後のsrc/auto/config.mkでLIBSに-L指定して誤魔化し
>ちゃったけど。(実行時用にLD_LIBRARY_PATHの設定も必要)

これ、試してみます。これができればいけそうですね。
半分あきらめてたので、結構うれしいです。ありがとうございましたー。
0353350NGNG
LIBSに-Lを指定しても、lddでvimみたらiconvが含まれてなかったので、
-liconvとかやったら、
libiconv.so.2 => /自分がインストールしたディレクトリ/lib/libiconv.so.2
って、出てくれました。

が、いまだにSJIS読めません..
単に「テスト」と書いたSJISのファイルなのですが..

vimrc, gvimrcは、vim-6.2.069-difj.tar.bz2 に入っている物を上書きしています。

enc=euc-jp
fencs=ucs-bom, ucs-2le, ucs-2, iso-2022-jp,utf-8,cp932

私何か勘違いしてますか?
0354KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>353
とりあえず
:e ++enc=cp932 該当ファイル
で開いてみてください。これで化けるようならverifyenc.vimが影響を与えている
か、基ファイルにiconvではeuc-jpへコンバートできない文字が含まれているかで
す。前者は
:echo b:verifyenc
として表示される結果で知ることができます。後者はシェルから
% iconv -f cp932 -t euc-jp 該当ファイル
としてエラーが出るかどうかで分かります。

また後者については
% iconv -f cp932 -t euc-jisx0213 該当ファイル
で対応できるのですが、iconvに特別なオプションをつけて./configureしなければな
らないのと、Vimのほうで対応していないのでちょっと手間がかかります。
0355名無しさん@お腹いっぱい。NGNG
gvimで起動時に最大化するようにau! GUIEnter * simalt ~xと書いたのですが、
これだと手動で最大化してるかのごとく時間がかかってしまいます。
他のアプリみたいにさくっと最初から最大化の状態で開けないものでしょうか?
0356mattn@Chalice%VimNGNG
>>355
もしWinならばgvim.exeのショートカットを作成し、
プロパティから最大化を選んで起動してみてください。
0357名無しさん@お腹いっぱい。NGNG
>>356
おお、こんな方法があったなんて。ありがとうございます。
0358KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>355
以下のどちらかで対応してください。
1. gvim.exeのショートカットを作成してプロパティから「実行時の大きさ」を「最大化」に設定し、そのショートカットで起動する。
2. cmd.exeからstartに/MAXオプションを付けて起動する。例: start /MAX gvim.exe
0359350NGNG
>>354

KoRoNさん、レスありがとうございます。さっそくやってみました。
:e ++enc=cp932 では、化けてしまいました。
:echo b:verifyenc は、NONE って出ました。 これは失敗??
iconv -f cp932 -t euc-jp は問題なく表示されました。

テスト用に、「テスト」とSJISで書いたファイルで試してるので、
変換できない文字ではないと思います。

あ、あと libiconv は1.9.1を入れてます。
コンパイルが間違ってるのかな?
0360KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>359
> :echo b:verifyenc は、NONE って出ました。 これは失敗??
verifyenc.vimは「fencの変更をしませんでしたよ」っていう意味です。

う〜んおかしいですね。基本的にiconvとVimの+iconvの結果は同じになるはずなんで
す。なのでiconvが正しく働くということはVimの+iconvリンクが上手くできてない、
ということが推測されます。

echo has('iconv')が1を返すか、ldd /usr/local/bin/vimとldd /usr/local/bin/iconv
で表示されるlibiconvへのリンクが同じものを指しているかを確認してください。
0361350NGNG
>>360

レスありがとうございます。

> verifyenc.vimは「fencの変更をしませんでしたよ」っていう意味です。

なるほど、そういう意味でしたか。勉強になります。

> echo has('iconv')が1を返すか、ldd /usr/local/bin/vimとldd /usr/local/bin/iconv
> で表示されるlibiconvへのリンクが同じものを指しているかを確認してください。

確認してみましたが、echo has('iconv')の結果はちゃんと1を返し、
ldd iconv と vim のlibiconvへのリンクは同じものを指していました。

やっぱり、コンパイルorリンクがうまくいってないっぽいですね。
configure後のsrc/auto/config.mkで -liconv とした方法がよくなかったかな。
でも、普通に config make するとldd見るとでiconvにリンクされてないみたいなんです..
0362355NGNG
>>358
ありがとうです
0363KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>361
多分、環境変数INCLUDE及びLIBそれぞれに、ローカルインストールしたパスを優先的
に設定してからvim62/src/autoでrm *して、vim62/srcで./configureすればちゃんと
認識されるとは思いますが、如何せん私は試せないので。

# こういうケースの時はいつも、telnetかssh開けてもらえたら楽なんだけどなぁ、
# ってついつい考えちゃいます。
0364355NGNG
ごめんなさい。まだ質問があります。
テキストファイルをダブルクリックするとgvimで開くようにしているのですが、
ダブルクリックのときも最大化で開かせるにはどうすればよいのでしょうか?
ショートカットをプログラムに選ぼうとしてもできないですし。
0365名無しさん@お腹いっぱい。NGNG
>>361
vimの起動時にLD_LIBRARY_PATHの指定がしてあればそっちにあるライブラリを
読むはずだけどなぁ。

コマンドラインでどうやって起動してるか晒してみるよろし。

あと、Solarisだと確かコンパイル時で"-L/どこそこ"と同じところに"-R/どこそこ"を
指定すればバイナリにライブラリ検索パスを埋め込めるはず。
0366350NGNG
>>363

なるほど、そのへんを調べつつリトライしてみますです。
ほんと、開けて見てもらえたら早いんですけどねぇ ^^;;

>>365

LD_LIBRARY_PATHは351さんが教えてくれたので、.cshrcにパスを追加してます。

setenv LD_LIBRARY_PATH $HOME/lib:${LD_LIBRARY_PATH}

こんな感じで。
コマンドラインでは普通に、vim か gvim って起動してるだけです。

> あと、Solarisだと確かコンパイル時で"-L/どこそこ"と同じところに"-R/どこそこ"を
> 指定すればバイナリにライブラリ検索パスを埋め込めるはず。

おお、そんなこともできるですか。ちょっと調べて見ます。
0367KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>364
NT系ならば起動するプログラムを
    cmd.exe /C start /max gvim.exe "%1"
こんな風に設定すれば、一時的にプロンプトが表示されるものの最大化で開くことが
できます。但しgvim.exeで済むのはパスが正しく設定されている場合に限定されるの
で、設定されていない場合はフルパスで指定してください。

もしかしたらレジストリ技を駆使してプロンプトを出さないようにすることもできる
かもしれませんが、それはご自分で調べてみてください。
0368名無しさん@お腹いっぱい。NGNG
>>367
ありがとうございます。調べてみます
0369KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>368
補足です。基本的にVimの内側から最大化するにはsimalt ~xするしかありません。ただ
しこの方法だと355の通りの現象が起きます。ただしソレを軽減する方法は存在します。
予めsimalt ~xしたときのlinesとcolumnsをメモしておき、それを.gvimrcで設定してか
らsimalt ~xするのです。例えば
  :set lines? columns?
  lines=73 columns=210
ならばこのような設定を.gvimrcに追加します。
  set lines=73 columns=210
  gui
  simalt ~x
この時au GUIEnterは使わないで良いでしょう。で、レジストリ方面から最大化する方
法が見つからない際の代替案として試してみてください。
0370名無しさん@お腹いっぱい。NGNG
.viminfoへの読み書きを抑止するにはどうしたらいいんでしょう?
0371名無しさん@お腹いっぱい。NGNG
:h 'viminfo'
0372名無しさん@お腹いっぱい。NGNG
# 過去ログ見たら書いてあるはずだが

>>370
:set viminfo=
を~/.vimrcに記述するだけです(=の直後に改行を入れる)。すなわち、viminfoオ
プションの値を空にするわけだ。
0373名無しさん@お腹いっぱい。NGNG
vim -i NONEという方法もある。
0374名無しさん@お腹いっぱい。NGNG
migemoに関する提案です。

オプションを1つ追加して、
このオプションがONの場合に、
/pattern -> 通常の正規表現検索
//pattern -> migemoで検索
という風に指定出来るようにしてはどうでしょう?
コンセプトは、最小限の努力で
とりあえずmigemoと正規表現を共存させる、です。

一応動くパッチがあって、ここでさらしても構いません。
0375名無しさん@お腹いっぱい。NGNG
.vimrcにformatoptions-=rを書いていても
いつの間にかrが入ってしまいます。
どこかのプラグインが悪いのだろうと思うのですが、どれなのかわかりません。
なにかいい方法はないでしょうか。
0376名無しさん@お腹いっぱい。NGNG
>>375
:verbose set formatoptions?
0377KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>374
一度検索した後の //+1 等とバッティングしちゃいませんか?
:help search-offset
0378375NGNG
>>376
ありがとうございます。
デフォルトで入っているjava.vimでした。
これは書き換えたくないんで、自分のホームにコピーして来て、
そのコピーを編集したら解決しました。
0379355NGNG
>>369
ありがとうございます。かなり快適になりました。
0380KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>378
全部コピーするよりは~/.vim/after/ftplugin/java.vimに
  setlocal fo-=r
と1行書くのがスマートでしょう。
0381375NGNG
>>380
ありがとうございます。
確かそういうことができたはずだよなぁーと思いつつも、
具体的なやり方がわからなかったんです。
0382374NGNG
>>377
こんな機能があったとは知りませんでした。
で、試してみたんですが、やっぱりバッティングしまくりでした。
//+1 -> migemo検索
///+1 -> 本来の動作

本質的な解決策もなさそうですし、
これだと単なる個人的パッチにしかならないですね。
なかなかいいアイディアだと思ったんですが。。。
0383名無しさん@お腹いっぱい。NGNG
\cみたいなので、空いてる文字(列)はないかなあ?
0384KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>382 383の方法とか g/ とかできないですか?
0385374NGNG
>> 383, 384は私へのレスですか?
ごめんなさい。ちょっと意味がわからないです。
0386KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>385
383は /\cmigemo ってやると'ignorecase'で強制マッチできる、その応用はできない
のかということです。詳細は :he /\c を参照。
384は / でsearchモードに入りますが、g/ で入るmigemo-searchモードをソースコー
ド的に新設できないか、ということです。
0387374NGNG
>>386
確認してみます。
ただ、何でパッチ作れたの?ってくらいに、
vimのソースをほとんどわかってないんで
どれぐらい時間がかかるかは検討もつかないです。

なんで、「それならこっちで見た方が早い」ってことなら、
さっさとソースをさらすなりします。
0388374NGNG
>>383の方法で実現できそうです。
\jが空いていたので、とりあえずそれを使って
実装しようと思います。

完成したらまた報告します。

0389KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>388 私としては g/ のように別モードとして分けてもらったほうが嬉しいです。
0390名無しさん@お腹いっぱい。NGNG
Kaoriya版のvimrc, アップデートされてますが, 52行目の
    if exists('g:vimrc_first_finish') && g:vimrc_local_finish != 0

    if exists('g:vimrc_first_finish') && g:vimrc_first_finish != 0
ではないですか?

133行目も
    " Bram氏の提供する設定例をインクルード (別ファイル:vimrc_example.vim)。これ
    " 以前にg:no_vimrc_exampleに非0な値を設定しておけばインクルードはしない。
    if 1 && (!exists('g:no_vimrc_example') || g:no_vimrc_example == 0)
説明と構文があってないような…
(こっちはあんまり自信なし…)

ちなみにgvimrcの方も同じです.
■ このスレッドは過去ログ倉庫に格納されています