Vim6 Part6
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNGhttp://www.vim.org/
前スレ
http://pc.2ch.net/test/read.cgi/unix/1045365370/
関連情報は>>2-6あたり。
0613KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG> ctags *.c | iconv -f euc-jp -t cp932
ctags *.c -f - | iconv -f euc-jp -t cp932 > tags
0614名無しさん@お腹いっぱい。
NGNG実際には2行あましてますよね。
例えばページ最下行が50行目の時にCTRL-Fしたら最上行が49行目になるみたいな。
これを0行にする(つまり上記のケースでは51行目が最上行になる)には
どのオションを弄ぶのでしたっけ?
0615名無しさん@お腹いっぱい。
NGNGset scrolloff=0
0616名無しさん@お腹いっぱい。
NGNG-->abc
(-->はタブ)
で、カーソルがcにあってoするとタブが自動で挿入されるのはいいんですが、Escすると
自動で挿入されたタブが消されてしまうので、回避したいのです。
0617KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG詳細は :help i_CTRL-R を参照してください。
0618616
NGNGおお、なるほど。ありがとうございます。
c_CTRL-R_CTRL-W は知ってたけど、CTRL-Rってなにげに
良く使いそうなコマンドが一杯あるんですね。
0619名無しさん@お腹いっぱい。
NGNGCTRL-N, CTRL-Pのタグでの単語補完って効かないですか?
やっぱctagsと両方使わないとなのかなぁ..
0620名無しさん@お腹いっぱい。
NGNG0621KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG:set list listchars=eol:$
これでどうでしょう。詳細は
:help 'listchars'
:help 'list'
0622名無しさん@お腹いっぱい。
NGNG改行コードがLF? CF?といった事を判別する方法はないでしょうか?
0623KoRoN@Vim%Chalice ◆8XALICEsdk
NGNGそっちでしたか。 :set ff? で確認できます。詳細は :help 'fileformat'
0624619
NGNG_| ̄|○
0625名無しさん@お腹いっぱい。
NGNGvimなら:spで2つファイルを開いてyy→画面移動→pとできますが、
vimはネットからいつもインストールしてるので、まずネットにつなぐために
OSインストール直後にその作業をしたいのです。
0626名無しさん@お腹いっぱい。
NGNGBillJoy版使ったことないから知らんが、
nviでも:eコマンドで複数バッファ間ヤンペはできる。
0628名無しさん@お腹いっぱい。
NGNG:eでは追加で開けないから、
vi file1 file2 file3 ...
と起動時に複数指定するしかないみたい。
切り替えが :n、最後のファイルまでいったら、:rewでfile1にもどる。
同時に立ち上がっている間は、ファイルをまたいで y-p できる。
vimにはバッファがあるので、編集中に別ファイルを :e で開いても、:bn :bp などでバッファ間移動ができる。
0630名無しさん@お腹いっぱい。
NGNG0631KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG実は前々から見える位置に置いてありました。私の作業レポジトリも兼ねているので、
時々変なことが起こるかもしれませんが、大目に見てください。
あとheadline.vimもcvsにあります。migemoの代わりにheadlineでアクセスしてみてく
ださい。
0632名無しさん@お腹いっぱい。
NGNGコマンドモードでもIMが有効になっていて非常に不便だったりします.
過去ログによると, 回避方法は
inoremap <silent> <ESC> <ESC>:set iminsert=0<CR>
inoremap <silent> <C-C> <C-C>:set iminsert=0<CR>
するか, コンパイル時にui.c の im_save_status() で
*psave = B_IMODE_NONE;
として常に B_IMODE_NONE を設定するとのことですが,
これ以外の方法ってあるんでしょうか?
私の環境(GentooLinux with Kaoriya patch and Gentoo patch, Xはmotif)では
両方ともNG(後者はコンパイルエラー)になってしまいまつ.
0633KoRoN@Vim%Chalice ◆8XALICEsdk
NGNGkterm等のCUI環境ということでしょうか。だとすれば回避方法はim_customの導入し
かありません。GUI環境であればソースコードを弄らずともimactivatekeyやXIM用の
設定を適切に行なうことで、Windowsのように快適にIMをコントロールすることがで
きます。
ただしその設定方法はXIMサーバや漢字変換サーバの種類・バージョンによって微妙
に異なってくる上に、幾つかハマりやすい落とし穴(>>282とか)があります。
0634632
NGNGなるほど.
主にGUI環境でのことを言っていましたが, 変換にはskkinputを使 3.06を
使用しています.
ちょっといろいろ弄んでみることにします.
何か分かったらご報告しますが, 同時に同じような環境の環境で情報を
お持ちの方がいれば, ぜひお願いします.
0635名無しさん@お腹いっぱい。
NGNG:<>g/Linux/d して p をしても、削除したした全ての行がペーストされません。
0636KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG0637名無しさん@お腹いっぱい。
NGNG:/Linux/d
でカーソルから最初に見つかった行を削除。ペースト可能。
0638名無しさん@お腹いっぱい。
NGNGあるいは、こんな statusline を設定しておく。どこかからパクってきたのだけど、
どこからパクったかは忘れました。
set statusline=%<%f\ %m%r%h%w[%{has('multi_byte')&&\ &fileencoding!=''?&fileencoding:&encoding}\ %{&fileformat}]%=%l,%c\ %P
0639名無しさん@お腹いっぱい。
NGNG0640KoRoN@Vim%Chalice ◆8XALICEsdk
NGNGデイリーでパッチ当てしてNetUpで更新してた時期もあるし、
大量パッチも過去に何度かあって慣れているんで到って平気です。
0641名無しさん@お腹いっぱい。
NGNGhjlk で微調整、そして<C-A>連打なんだろうか?
0642名無しさん@お腹いっぱい。
NGNGでもやりそうw
0643名無しさん@お腹いっぱい。
NGNG自分の*をhjklで調整した方が早いやろ。
0644名無しさん@お腹いっぱい。
NGNG0645名無しさん@お腹いっぱい。
NGNGhttp://www.sanspo.com/geino/top/gt200310/gt2003101107.html
0646名無しさん@Vim%Chalice
NGNG0647名無しさん@お腹いっぱい。
NGNG質問です。
ヴィジュアルモードで範囲選択してから >> とすると、
手軽に一度に複数行にタブを挿入できますが、
タブの代わりにスペースを挿入する方法はありませんでしょうか?
今は苦肉の策で、qai<SPACE><ESC>jq数字@a みたいにやってるんですが。。。
0648KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG:set et してから
> ヴィジュアルモードで範囲選択してから >> とすると、
> 手軽に一度に複数行にタブを挿入できますが、
この操作をしてみましょう。詳細は :help 'expandtab'。
他にも <C-V>I を使う方法や :s/// を使う方法が在ります。
0649名無しさん@お腹いっぱい。
NGNG<C-V>I を使う方法で望みどおりの操作ができました。
ありがとうございます。
ちなみに、以前、<C-V>i とやってみたことはあるのですが、
何も起こらなかったのです。I だとできるのですね。
0650名無しさん@お腹いっぱい。
NGNG0651名無しさん@お腹いっぱい。
NGNG0652名無しさん@お腹いっぱい。
NGNGとは違う話?(これだと指定桁でなく画面幅だけど)
0653名無しさん@お腹いっぱい。
NGNG0654名無しさん@お腹いっぱい。
NGNG違う話.
>653
linebreakてのはbreakatで決めた文字のところで折り返すってことしかできないよね?
set breakat=76とかあほなこと書いたらやっぱり無視されたよ.
0655
NGNG"a"の変わりに"i"を押してしまい、カーソルを1文字ずらしたい時、Escしてやりなおすのが普通なの
でしょうか?
カーソルキーをつかう、:help emacs-keys のどちらも ? な気がしまして…。
vim使いの方、アドバイスお願いします。
0656名無しさん@お腹いっぱい。
NGNG:source! ~/.gvimrc
ってやったら
:r ~/.gvimrc
と同じことが起きてしまったんだが、なぜだ?
設定をRELOADしたいのだが。
ちなみに
:source ~/.gvimrc
では何も起きなかった(ように見えた)。
>>655
漏れはカーソルキー使うのは邪道だと思うのでescを使ってます。
0657名無しさん@お腹いっぱい。
NGNG<C-O>使う手もあるよ
ESC使うのとストローク数は変わらんけど
0658KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG数文字程度なら同じ文字を打ち込んで、続けて全部書いてからダブった分を消します。
>>656
> These are commands that are executed from Normal mode, like you type them.
ヘルプより引用。
0659655
NGNGありがとうございました。今夜も頑張ってつかってみます。
0660名無しさん@お腹いっぱい。
NGNGカーソルキーを使う方が楽だと思う。
また (Shift または Ctrl+)カーソルキーに なにかマップするのも意外と便利。
vim とカーソルキーは相性いいと思うよ。
0661名無しさん@お腹いっぱい。
NGNG{
}このように}を入力すると、インデントが1段戻る。
このとき}を押してすぐにEscでノーマルモードに抜けようとすると、
インサートモードのままになることがある。だからよく
{
}:w
とまぬけなことになってしまう。indent/java.vimの処理が遅いの
かな?
0662名無しさん@お腹いっぱい。
NGNG> カーソルキーを使う方が楽だと思う。
慣れの問題が一番だと思うのですが、
そこさえクリアできたらやはり hjkl の方が近くて楽のように思います。
また慣れてない人にはカーソルキーの方が直感的で
使いやすいかも知れないけど。
vi は、慣れてくると hjkl は微調整の時以外あまり使わずに
移動するようになるので(^F, ^D, M, w, f など使って)、
そういう意味でも hjkl ですばやく移動できることは大切だと思う。
ww← とやるより wwh の方が楽でしょ。
0663へぇ〜
NGNG0664KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG:set indentexpr&
して再発しなければそのとおりですが、しないようならばescの押し込みが甘いとい
うことになるでしょう。一度入力バッファに貯められたキーがindentexpr内で食われ
てしまうというのは、よっぽど意図的にそう書かない限り起こるとは考えにくいで
す。となるとやはりescが押されていないと考えるのが自然なんです。
0665名無しさん@お腹いっぱい。
NGNGてか、ホームポジションから手を離す時点で有り得ない選択ですよね、
カーソルキーは。
まあ、5ストロークくらい節約出来るのならアリかもしれないけど。。。
0667名無しさん@お腹いっぱい。
NGNGそこに効率だの直感だのは存在し得ない。
0668名無しさん@お腹いっぱい。
NGNG0669名無しさん@お腹いっぱい。
NGNGまあ、ここにおられるような方は、キーマップもいじってらっしゃることでしょう。
0670名無しさん@お腹いっぱい。
NGNG0671名無しさん@お腹いっぱい。
NGNGふつー Ctrl-[ でしょ。
0672KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG>>669 私はキーマップしない派です。
0673KoRoN@Vim%Chalice ◆8XALICEsdk
NGNGmapとの相性の可能性を忘れてました。indentexprは弄らずに
:imapc
:nmapc
などとしてmapを消して再発するかを確認してみてください。
0674名無しさん@お腹いっぱい。
NGNGいや、上記の例でインサートモードなのに右に一文字移動したいなっていう時だったら
<ESC>la より <RIGHT> の方が楽じゃないかなってこと。
0675名無しさん@お腹いっぱい。
NGNGああ、あと余程キーボードが小さいor手が大きくて
jに人差指置いたまま→に小指が届くとかなら別かも
0676名無しさん@お腹いっぱい。
NGNG0677666
NGNG環境は
redhat{8,9} + {xterm,kterm,mlterm} + {vim6.1(/usr/bin/vim),vim6.2.69}
です。gvimでは再現できないようです。
:imapc :nmapcをしてみましたが、再発しました。
0678KoRoN@Vim%Chalice ◆8XALICEsdk
NGNGこちらはsshでFreeBSD 5.0上のVim 6.2.69に繋いでshowmatchを設定してmatchtimeを
長めにとってみたりしましたが、再現できていません。
> Escでノーマルモードに抜けようとすると、
ってありますけど、どのくらいのタイミングなんでしょうかね
0679名無しさん@お腹いっぱい。
NGNG0680666
NGNGvim -u NONE -c 'se nocp' -c 'filetype indent on' -c 'se
ft=java' -c 'se showmatch' -c 'se matchtime=100'これで起動し
て、a{<cr>}の順に押して、カーソルが{にいるとき(10秒以内)に
<esc>を押すと}が左に移動してカーソルは}の右に来るのですが、
-- 挿入 --の文字は消えずに、インサートモードのままです。発
生する条件が他にもあるようで、このあと同じことをやっても発生
しません。起動して最初にやると必ず発生します。telnetでもコン
ソール(TERM=linux)でも再現しました。
訂正。>>677のredhat8の/usr/bin/vimは再現しませんでした。
0681KoRoN@Vim%Chalice ◆8XALICEsdk
NGNGども。バッチリ再現しました。自分の環境ではESC押してから2秒以内くらいであれば、
何回でも発生することが確認できました。ちなみにWinのvim.exeでは再現できません
でした。時間を取って調査してみましょう。
0682名無しさん@お腹いっぱい。
NGNG<M-1>は効いてるんですけど、<C-1>だと効かないんですよ。
0683名無しさん@お腹いっぱい。
NGNGあっ、俺と一緒。
ちなみに変換にはShift割り当ててる。
0684名無しさん@お腹いっぱい。
NGNGバグ直ったかな
0685名無しさん@Vim%Chalice
NGNGmattnさんにお呼びがかかっております〜
http://pc.2ch.net/test/read.cgi/unix/1043606156/
さすがにVim6板は見てるかな?
0686名無しさん@お腹いっぱい。
NGNGいや,多分使わないとは思うんですけどね
0687名無しさん@お腹いっぱい。
NGNG:registersのことか?
0688名無しさん@お腹いっぱい。
NGNGオプション変数の値をバッファに出すには?
:opt[ions] で全オプションを出して
そこからヤンペするのは思い付いたんだが
0689KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG0690688
NGNGありがd
既存の機能をいかに応用するかってことだぁね。
思い付くまでには知識のみならず、それらを応用できる経験が必要だろうけども。
:help expr-option の例を読むとスクリプトやコマンドラインで使うことは思い付いても
それを i_CTRL-R と組合せる所までは気付きにくいよね…
0691名無しさん@お腹いっぱい。
NGNG0692KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG0693名無しさん@お腹いっぱい。
NGNGかーそーるが半角になり表示も変になる。(詳しく書くと)
gvim6.2.63〜121ずっと直っていない。
0694名無しさん@お腹いっぱい。
NGNG0695名無しさん@お腹いっぱい。
NGNG板違い
0696名無しさん@お腹いっぱい。
NGNGさすがにそれはあんまりだろ。
まあ細かい使用環境がわからないままでは単なるゴミカキコだけど。
0697名無しさん@お腹いっぱい。
NGNG自分もDebian sidでカーソル関係のバグに悩まされとるけど、
ここで聴くようなことじゃないな。
0698KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG:set enc? ambiwidth?
して結果を教えてください。
体育館で自らヨコチンを曝け出し、「汚い」「触るな」と虐められ泣かされていた。
「先生。○○君がヨコチン大使って言うねん」と朝の会で皆の前で泣きじゃくっていた。
彼はまるで銀幕スターだった。銀シャリが食べたい。
0700名無しさん@お腹いっぱい。
NGNG今日は、:HDensityという謎のコマンド見つけますた。
元に戻すのは多分、:NDensity
0701名無しさん@お腹いっぱい。
NGNGありがとございます。
0702名無しさん@お腹いっぱい。
NGNGばぐではないだろうか。
0703名無しさん@お腹いっぱい。
NGNG0704mattn@Chalice%Vim
NGNGこれらを取得する方法は2通りあり、1点目はGUIの描画ロジックから取得できるか
と思います。(未実装です)
2点目は文字コードに対して固定的に割当てられていて、その実装はアジア圏とそう
でない地域によって異なります。それを制御するのがこの ambiwidth です。つまり
ある文字に対して、その幅が全角であって欲しい人と半角であって欲しい人が世界に
2通りいることになります。
日本語圏であれば初期設定で ambiwidth=double しておけば問題になることはないか
と思います。
1点目についてはニーズがあれば機能拡張したいと思っています。
(香り屋版 ambiwidth=auto を参考に GTK で実装します)
ただしCUIに関して自動で判別する方法は、いまのところ実装が難しいと思われます。
なぜかというと、encoding=utf-8 上で、どちらになるかの判断材料が環境変数くら
いしかなく、それを使用したとしても、どうしてもハードコーディングにならざるを
得ないのが問題になります。
0705名無しさん@お腹いっぱい。
NGNG同じにするにはどうすればいいですか?
:cd でフルパス打っていくのが面倒なんですが.
0706KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG一番簡単なのは :cd %:p:h を実行することです。%は現在のバッファを意味していま
す。:p:hはそれぞれフルパスにする、パスの最後の要素を取り除くという意味になり
ますが、詳細は :help expand() を参照してください。
香り屋版ではこれを :CdCurrent という名前のコマンドとして定義しています。
command! -nargs=0 CdCurrent cd %:p:h
0707705
NGNG0708KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG実装してみました。インサートモードに入ったときにカーソルの前後にMB文字があれば
IMをON、なければOFFにするというものです。実装方法としては、インサートモード突
入時に呼ばれるautocmdのInsmodEnterイベントを新しく作成し、そこからスクリプトを
呼び出してMB文字の判定をするというものです。
http://www.kaoriya.net/testdir/smart_im.tar.bz2
このアーカイブにはパッチ、スクリプト、Windows用バイナリが入っています。手っ取
り早く試すにはgvim.exeと同じ場所にバイナリを置いて実行し、同梱のスクリプトを
sourceすれば良いです。あとは適当な日本語英語混在ファイルを開いて試してみてくだ
さい。
またInsmodEnterに何か他の使い道があるかもしれません。アイデアがある方は是非提
案してください。場合によってはそれを持ってvim-devの方にInsmodEnterをプッシュし
ます。
0709名無しさん@お腹いっぱい。
NGNG> またInsmodEnterに何か他の使い道があるかもしれません。
> アイデアがある方は是非提案してください。
vim online かどこかでinsertモードになったら背景色を変える
といったスクリプトを見たことがあるな。
あれは確かiやaなどをmappingしてhighlightを変えていたが。
この手の需要に答えられるのでは?
0710709
NGNGInsModEnterがあるならInsModExitも有った方がよいかと。
0711KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG0712名無しさん@お腹いっぱい。
NGNGその折り返し以降の部分も同じようにインデントされているように
見えるようにすることってできますか?
■ このスレッドは過去ログ倉庫に格納されています