Vim6 Part10
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@w3m
NGNGhttp://www.vim.org/
前スレ
http://pc5.2ch.net/test/read.cgi/unix/1086135625/
関連情報は>>2-7あたり。
0064名無しさん@お腹いっぱい。
NGNGVimの開発者さん?
0065名無しさん@お腹いっぱい。
NGNGDebianで6.3.030にパッチして15分くらい使ってみたけれど、んー
どうだろう。
スクリーンショットにあるようにウィンドウを自由に分割できるみたい
なのはちょっといいかもしれないけれど、常用しているscreen(1)で
上下には分割できるし、今のところはビビッとは来ないかな。
0066名無しさん@お腹いっぱい。
NGNG> スクリーンショットにあるようにウィンドウを自由に分割できるみたい
> なのはちょっといいかもしれないけれど、常用しているscreen(1)で
> 上下には分割できるし、今のところはビビッとは来ないかな。
それと同じツッコミが本家のMLでもあったよ。
「だけど、gvim はscreenが使えないでしょ?」とか(w
0067名無しさん@お腹いっぱい。
NGNG0068名無しさん@お腹いっぱい。
NGNG> command line there isn't really popular.
だって。
0069名無しさん@お腹いっぱい。
NGNG0070名無しさん@お腹いっぱい。
NGNGどいう意味?
0071名無しさん@お腹いっぱい。
NGNGってこと
0072名無しさん@お腹いっぱい。
NGNGそりゃgvimでscreenはできないよなー w。
X使えるほど裕福なハードじゃないんで、gvimには思いが至らなかったです。
偏ったショートインプレでスマソ。たしかにgvim使っている人にはvimshellで
ウィンドウを割れるのは便利だと思う。
というわけで、gvim使いのインプレ街。
0073名無しさん@お腹いっぱい。
NGNGvim6 は重くないの?
0074名無しさん@お腹いっぱい。
NGNGPenII 333とかPen 133なんですが、vimは快適に動きますよ。
fdm=marker指定してfoldしているファイル開く時はもっさり
するけれど、vim無しには生活できません。プラグインは、
追加で二つ三つしか入れていないし、ローマンアルファベット
しか扱わないからかもしれませんけれど。
0076名無しさん@お腹いっぱい。
NGNG0077名無しさん@お腹いっぱい。
NGNG| mattn です...
|((((〜〜、
|((((((_ ).
|\)/^~ヽ|
| 《 _ |
|)-(_//_)-|)
|厶、 |
||||||||| /
|~~~_/
| )
|/
|
|
0078名無しさん@お腹いっぱい。
NGNGたぶん年内にはソース読めると思う。いまは別のソースに嵌まってて
0079名無しさん@お腹いっぱい。
NGNGWindowsユーザはUnix/Linux系の人と違って、シェル(コマンドプロンプト etc)が
あまり使われていないということ。
プログラマーの人はさすがに違うだろうけど。
けど、vimだしなぁ、、、
0080名無しさん@お腹いっぱい。
NGNG何がうれしいのか正直わからん。
vimならvim+screenのほうが断然便利だし、
gvimにしてもちょこっとしたシェル作業は:!で十分だし
長いシェル作業はmlterm+screenでやった方がいい。
だいたいvimshell上で出力された文字列を、
他のバッファでc-n c-p補完できないし、
かといってvimshellのバッファで編集作業できないみたいだし、
結局はvim+screenでいいや、と。
0081名無しさん@Vim%Chalice
NGNGfileencodings=ucs-bom,ucs-2le,ucs-2,iso-2022-jp-3,utf-8,cp932
という環境でHeadlineを使っていますが、一部文字化けするサイトがあります。
その中の1つ、例えばYomiuriでは、<!-- ▼バナ−ここから▼ -->
の「−」の変換に失敗してるようで、この部分を「ー」と書き換えるとOKでした。
「あ〜どうせまたiconvが変換できないんだな…」と思ったんですが、
気になるのは、iconv -f CP932 -t EUC-JP <file>とすると上記個所で変換失敗するんですが、
iconv -f SHIFT-JIS -t EUC-JP <file> だとOKなんです。
fencsにshift-jisを加えれば文字化けするサイトは無くなるんですが、
気になることが2つ。
1つは、Chaliceスレ Vol.3 #390 でKoRoNさんがそうするべきではない
という類のことを言ってること。
http://www.google.co.jp/search?q=cache:dGVciblbLr8J:pc5.2ch.net/test/read.cgi/software/1046263908/390+chalice+shift-jis&hl=ja&ie=UTF-8&inlang=ja
もう1つはそもそもcp932とshift-jisは、ほとんど同じものだと思っていたんですが、
http://www.kaoriya.net/bbs/bbs.cgi?bbs=bbs&article=564
とか見てみても、やっぱり違うものだったりするんでしょうか。
現状は、Headlineを使う時だけfencsにshift-jisを加えるようにしていますが、
正しい対処方法としてはどのようなものになるんでしょう?
ちなみにlibiconvはglibcのiconv.hを上書きしてくれるので、Linuxでは
極力導入したくありません。
0082KoRoN@Vim%Chalice ◆8XALICEsdk
NGNGSHIFT-JISはJISという厳格に定義されたコードを、8ビットを使って表現できるように
したものであって、CP932はそれをベースにMSが改変したコードですから、厳密には異
なっています。また、コード変換時にどれをどこにマッピングするかは、実は完全に定
義されているわけではありません。そのため細部はiconvの実装によって異なってきま
す。
libiconvでは過去にcp932とsjisが微妙に違いました。sjis指定時には0x7eのチルダや
0x5cの円記号等が全角にコンバートされてしまうという、Windows環境では致命的な問
題がありました。現在はわかりませんが、Vimへのlibiconv導入当時はそういう事情
で、cp932にせざるを得なかったのです。またWindowsで使うということから考えても、
cp932を選択することにはvim-devへの提案として説得力がありました。
GNU libcのiconvでは、私が今までに目にした変換にまつわるトラブルを総合してみる
と、むしろcp932よりもsjisを恒常的に使ったほうが良いような感想を抱いています。
設定方法としてはfencs内のcp932をsjisに置換すればよいでしょう。
KaoriYa配布のvimrcでは、より多くのプラットホームで利用可能なlibiconvを基準とし
ていますから、cp932を使い続けているというわけです。もっとも一番良いのは既に
行っているiso-2022-jp-3の選択のように、ランタイムで判断することなのですが、手
元にGNU libc iconvが動いている環境と、テストしている時間がないのでそのままに
なってます。
008381
NGNG詳細な解説、ありがとうございました。
勉強になります。
> GNU libcのiconvでは、私が今までに目にした変換にまつわるトラブルを総合してみる
> と、むしろcp932よりもsjisを恒常的に使ったほうが良いような感想を抱いています。
> 設定方法としてはfencs内のcp932をsjisに置換すればよいでしょう。
fencsにcp932とsjisを両方指定するのはダメなのでしょうか?
前述のheadlineの例では、fencsを
fileencodings=ucs-bom,ucs-2le,ucs-2,iso-2022-jp-3,utf-8,cp932,shift-jis
とすることで回避できています。
なにか他の理由でこれがマズいとしても、
> KaoriYa配布のvimrcでは、より多くのプラットホームで利用可能なlibiconvを基準とし
> ていますから、cp932を使い続けているというわけです。もっとも一番良いのは既に
> 行っているiso-2022-jp-3の選択のように、ランタイムで判断することなのですが、手
> 元にGNU libc iconvが動いている環境と、テストしている時間がないのでそのままに
> なってます。
私の手元にはlibiconv環境(NetBSD)とlibc iconv環境(Linux)があるので、
テスト方法のヒントぐらい示して頂ければ協力できると思います。
0084KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG両方試すというのは間違っていませんが、なんか気持ち悪いですね。
# cp932とsjisどちらでも変換できるが、微妙に結果が違ってcp932のほうは好ましくな
# い。そんな例があったら、なかなか問題が判別しにくいかもしれません。もっともそ
# んなことあるのかさえ不明ですが。
> 私の手元にはlibiconv環境(NetBSD)とlibc iconv環境(Linux)があるので、
> テスト方法のヒントぐらい示して頂ければ協力できると思います。
KaoriYa付属のvimrcでiso-2022-jp-3を判定している箇所を参考にしてください。その
例ではdjがeuc-jpに変換できるかどうかで、対応の可否を判断していたと記憶してい
ます。このように特定の変換が成功するかどうかをチェックすることで、どちらを使う
か決定できます。なにかiconvの実装によって特徴的な変換パターンを見つけて貰える
と助かります。
そもそも、ちゃんとしたコード判定ルーチンと変換ルーチンをセットで作ったらどうな
んだ、という話なんですが… orz
0085名無しさん@お腹いっぱい。
NGNGいい方法はないでしょうか?
0086名無しさん@お腹いっぱい。
NGNGcat -n で(ry とかではダメなの?
あとは、行の先頭に行番号を挿入するようなスクリプトを書くとか、、、
0087名無しさん@お腹いっぱい。
NGNG:%s/^/\=line(".")." "/
:%!nl
とかもある
0088名無しさん@お腹いっぱい。
NGNG%!cat -n
選択
コピー
アンドゥ
のような順になりますよね。
これだとコマンド作りにくいし、選択→コマンド実行
の順の方が操作しやすいなーと思ったんですが。
0089名無しさん@お腹いっぱい。
NGNGある正規表現にマッチする部分のみを取り出すにはどうすればよいだろう?
取り出すと言っても曖昧だけど、例えば別バッファに集めるとか、
マッチしない部分を全部消去するとか(元の内容を保たなくてもよいとしよう)
例えばHTMLソース内の <a .\{-}>.\{-}</a> のみを抜き出す、とか。
0090名無しさん@お腹いっぱい。
NGNG0091KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG一回検索した直後に、新規バッファに全体をコピペしてから、こんなコマンドで。
:%s//\r&\r/g
:v//d
0092名無しさん@お腹いっぱい。
NGNGまぁKoRoN氏が答えているのでスレ違いではないという事なんだろうが
いつもはフィルターつかえとかエディタでやる事じゃないとか説教垂れるのに
どういう風の吹き回しやら・・・
0093名無しさん@お腹いっぱい。
NGNG0094名無しさん@お腹いっぱい。
NGNGVimで出来る事 → 親切に教える
Vimで出来ない事 → Vimではそう言う事はしないとキレる
ま、いつもの事
0095名無しさん@お腹いっぱい。
NGNG> Execute the Ex command [cmd] (default ":p") on the
> lines within [range] where {pattern} does NOT match.
なるほど... "where {pattern} does NOT match" に対する動作は
(行単位とはいえ)ちゃんと用意されてたのか。 Thx > KoRonさん
# 直接 :%s/regex/\r&\r/g → :v//d にしときます
Vimでできるんならそれでいいじゃん >>90 >>92
別にApacheのログ集計をしようってんじゃない。
0096KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG要件をこれ以上手軽に満たせるならば、逆に教えていただきたいです。おねがいしま
す m(_ _)m
0097名無しさん@お腹いっぱい。
NGNG|
|
-aa.c
|
|
-bb.c
aa.cとbb.cが参照関係にあった場合、タグ作成して各ソースからタグジャンプって
出来ないですよね??
やる方法合ったら教えてください・・。
(タグファイルの中身見ると相対パスで記録されているようですが、絶対パスのタグを作る方法って
あるんでしょうか・・?)
0098名無しさん@お腹いっぱい。
NGNGふつーにtags使ってできるじゃん
0099名無しさん@お腹いっぱい。
NGNG--tag-relative=yes
で絶対パスのタグは作れるけど、そんなの使わなくてもできるじゃん
010099
NGNG--tag-relative=no
だ。
0101名無しさん@お腹いっぱい。
NGNG0102名無しさん@お腹いっぱい。
NGNG0103名無しさん@お腹いっぱい。
NGNG0104名無しさん@お腹いっぱい。
NGNG0105名無しさん@お腹いっぱい。
NGNG0106名無しさん@お腹いっぱい。
NGNG0107名無しさん@お腹いっぱい。
NGNGg/re/pなのは>>104が書いてある通り。
viじゃなくてed(1)のコマンドだよ。
で、ここはvimスレだ。
くだ質スレか「viが元ネタ」だと思うならviスレで質問汁。
0108名無しさん@お腹いっぱい。
NGNGどういうふうに記述すればいいのでしょうか?
0109KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG<S-Space> とか <C-Space> って書いてください。ただしCUI端末などの、そもそも
Vimにキーコード自体が飛んでこない環境下では機能しないので注意してください。
0110名無しさん@お腹いっぱい。
NGNG次の行(n行目)から3行にわたって(n+2まで)、s/foo/bar とか。
0111名無しさん@お腹いっぱい。
NGNG0112108
NGNGどうもありがとうございます。
環境がCUI(mlterm+vim)でした。
なるほど、<S-Space>で指定してもうまくいかなかったのは、
キーコードが飛んでこなかったからなのですね。
0113名無しさん@お腹いっぱい。
NGNGstatuslineを書き換えていたのですが
%Bの部分がfencがS-JISだろうがEUCだろうがUTF-8だろうが関係なく
S-JISのキャラクタコードを返すのに気づきました。(ちなみにgaも一緒でした)
これってfencに従ったコードで返してくれる方法はないのでしょうか?教えてください。
ちなみには書き換えたものは以下の通りです。
statusline=%<%F%h%r%w%m%=%([%{&fileencoding}]%)%([%{&fileformat=='dos'?'DOS':''}]%) [%B] %c%V,%l/%L
0114名無しさん@お腹いっぱい。
NGNG使ってできなくはない…のかな?
0115名無しさん@お腹いっぱい。
NGNGそれ俺も気になってた。
是非知りたいです。>賢者
0116名無しさん@お腹いっぱい。
NGNGlet c = matchstr(getline('.'), '.', col('.') - 1)
let c = iconv(c, &enc, &fenc)
return String2Hex(c)
endfunction
" :help eval-examples
" The function Nr2Hex() returns the Hex string of a number.
func! Nr2Hex(nr)
let n = a:nr
let r = ""
while n
let r = '0123456789ABCDEF'[n % 16] . r
let n = n / 16
endwhile
return r
endfunc
" The function String2Hex() converts each character in a string to a two
" character Hex string.
func! String2Hex(str)
let out = ''
let ix = 0
while ix < strlen(a:str)
let out = out . Nr2Hex(char2nr(a:str[ix]))
let ix = ix + 1
endwhile
return out
endfunc
set statusline=%{GetB()}
0118名無しさん@お腹いっぱい。
NGNG表示できますか?
taglist.vimプラグインは少し邪魔なのでステータスバーに表示させたいです。
0119名無しさん@お腹いっぱい。
NGNGカーソル位置の関数名を返す関数を書けばいい。
0120名無しさん@お腹いっぱい。
NGNGなるほどねー
で、どんなん書くんですか?
0121名無しさん@お腹いっぱい。
NGNG0122名無しさん@お腹いっぱい。
NGNG0123名無しさん@お腹いっぱい。
NGNGtaglist.vim持ってるんなら中覗いてみりゃわかるだろ
>122
/ との違いがわからんぞ
0124名無しさん@お腹いっぱい。
NGNG:exe '/\%' . virtcol(".") . 'v何か一文字'
みたいな。virtcol 縛り。
0125名無しさん@お腹いっぱい。
NGNGプラグインちょっと入れたら遅くなってきたもので
0126名無しさん@お腹いっぱい。
NGNGたとえばどれよ?
0127名無しさん@お腹いっぱい。
NGNG>taglist.vim持ってるんなら中覗いてみりゃわかるだろ
わかるならここに書き込まないと思うが。
0128名無しさん@お腹いっぱい。
NGNGまぁでもCを書けるんだから、vimスクリプトだってやってみりゃできると言いたかったんでしょ
0129名無しさん@お腹いっぱい。
NGNG0130名無しさん@お腹いっぱい。
NGNGa.vim
alice.vim
ambsearch.vim
bufexplorer.vim
calendar.vim
DirDiff.vim
genutils.vim
greputils.vim
headline.vim
movewin.vim
mru.vim
multvals.vim
openurl.vim
taglist.vim
TogFullscreen.vim
ZoomWin.vim
このほかにも環境が無いから覚えていないけどdb関係のプラグインを入れてある
あとsyntaxやindentもかなりいじっていたり
>>129
体感で10倍くらい違うかも
0131名無しさん@お腹いっぱい。
NGNG0132名無しさん@お腹いっぱい。
NGNGこの位ふつうじゃないの?
スマソ感覚がつかめんので
で、バイトコンパイル調べてみた範囲だと対応していないみたい
バージョンアップで対応する予定はないのかなぁ
かなりの部分がスクリプトで動いているから結構変わってくると思うんだけど
0133KoRoN@Vim%Chalice ◆8XALICEsdk
NGNGpossible」になってるので可能性は高そうですけど、実際に盛り込まれるかどうかは
わかりません。
# もっとも7がいつリリースされるのかさえ不透明ですが
0134名無しさん@お腹いっぱい。
NGNG7なんて出るんですね
バイトコンパイルも実装されそうな流れだしもう少し待ってみますか
0135名無しさん@お腹いっぱい。
NGNGやっぱりmattnさんが推してたsocket系APIは
7になっても実装されないんだろうな・・・
0136名無しさん@お腹いっぱい。
NGNG0137名無しさん@お腹いっぱい。
NGNG日本語環境向けに改造してビルドして配布してるのがKoRoN氏。
0138名無しさん@お腹いっぱい。
NGNGWindows版も期待できたんだがなぁ
一応yzis on Windowsは予告?されてるがqtって時点で期待薄…
yzisに期待してただけにvim7待つのも複雑な気分だわ
0139名無しさん@お腹いっぱい。
NGNG:dig
:redir end
:se nowrap
"ap$jjjjjjjjjjjjjjjjjjjjjjjjjjjjj
とかすると所々改行されていない部分が出てくるんだけど
何か間違ってる?
0140名無しさん@お腹いっぱい。
NGNG関係ないけど
:redir END
ENDは大文字
0141mattn@Vim%Chalice
NGNG:scriptnames でどれくらい出ますか?
もしどうしても遅いということならば、遅延ロードも効果的かとおもいます。
以下 chalice の遅延ロード方法です。
※以下は chalice に導入される可能性がありますので、もし導入された際には
ご自分で元に戻せる方、内容がわかる方しかやらないほうが良いかもしれません。
let g:chalice_path = globpath(&runtimepath, 'chalice')
let g:alice_preload = 1
function! LoadChalice(path)
exec 'set runtimepath+='.escape(a:path, ' ')
let list = glob(a:path . '/plugin/*.vim')
let list = "so " . substitute(list, "\n", "|so ", "g")
exec list
endfunction
let alice_path = chalice_path . "/plugin/alice.vim"
if g:alice_preload && filereadable(alice_path)
exec "so " . alice_path
endif
command! -nargs=0 Chalice call LoadChalice(g:chalice_path)|delfunction LoadChalice|Chalice
0142mattn@Vim%Chalice
NGNGおそらく今後もないと思います。
vim -> なんらかのインタラプタ -> ソケット
で実現するしかありません。
この他、process 関連の API もパッチを作って送ったことは
ありますが、Bram 氏の腰は動きませんでした。w
0143名無しさん@Vim%Chalice
NGNGなんかすごくトリッキーなことをしてるように見えるんですが、
単純に
command! -nargs=0 Chalice set runtimepath+=<path to chalice> | runtime! plugin/*.vim | Chalice
ぐらいで済みませんか?
>>130
遅延ロードという点ではmattnさんに賛成です。
私はこんなことしています。
command! -nargs=0 Macros :call <SID>Macros()
function! s:Macros()
let bakz=@z
let baksb=&sb
let @z=globpath(&rtp, 'macros/*.vim')
set splitbelow
new
exec "normal! i\<c-r>=@z\<Enter>\<Esc>gg"
let @z=bakz
if baksb==0
set nosb
endif
setlocal buftype=nofile
setlocal nobuflisted
setlocal bufhidden=delete
setlocal nomodifiable
nnoremap <buffer> <cr> :let f=getline(".")<bar>close<bar>exec 'source ' . f<cr>
nnoremap <buffer> <esc> :close<cr>
endfunction
0144名無しさん@お腹いっぱい。
NGNG明確な理由ってあるのかなぁ
0145mattn@Vim%Chalice
NGNGエラーを出したので、こんな形になりました。
# runtime! の瞬間に howm-mode.vim にアクセスにいかないように...
この方法ですと、2重読み込みでエラーを出すようなスクリプトでもその配下の
plugin スクリプトのみ読んでくれます。
# まぁ silent! runtime! とすれば済む話なのですが...f(^-^;)
0146mattn@Vim%Chalice
NGNGsocket API のときは
Yasuhiro Matsumoto wrote:
> And Since libcall may break vim too, it is dangerous.
Indeed. And it's not portable. Using Python or Perl would be much more
useful.
> I think that it is required the process-communication which does not
> break a memory(etc) for vim.
> I made a patch for process_open().
> (This work on win32 and unix)
> Bram, I think it is very usefull that the starting grep in background or
> communication to gdb from a script.
> (on unix, there is gdbvim or idevim..., but win32's not)
For getting the output of an external command you can use system().
Interactive communication with a program like gdb is very complicated,
especially when you need to handle asynchronous things. Look in the
code for cscope. I certainly want to leave this out of the Vim script
language. Using Python would be appropriate.
If you want to use gdb and Vim together, have a look at Agide:
http://www.agide.org. I know it still needs more work, but it is a good
setup for further development.
0147mattn@Vim%Chalice
NGNGprocess API のときは
Yasuhiro Matsumoto wrote:
> This is a patch which can use socket function on vim.
> I don't hope that this patch is include the 6.2.
> If it is possible this will be include to 6.3, i'm happy.
> Enjoy!
I think this is not something that is directly related to text editing.
You can use the Python or Perl interface instead. Or even an external
program.
For obtaining a web page we certainly don't want to use sockets
directly. There are many tools that avoid having to do the low-level
work. You can even do ":e http://www.yahoo.com", using the netrw plugin.
といわれました。
# 下手な英語ですみません。
0148名無しさん@お腹いっぱい。
NGNG0149名無しさん@お腹いっぱい。
NGNG:e g/houkoku # => 「報告」で始まるファイルが候補ででてくる
のようなスタイルで。
これを実現するのは無理がありますか?
0150KoRoN@Vim%Chalice ◆8XALICEsdk
NGNGやや無理があります。
:e .
して g/ したほうが早いし楽でしょう。
0151名無しさん@お腹いっぱい。
NGNG普段はそうやってます。
別の方法もできないものかなと(w
0153名無しさん@お腹いっぱい。
NGNG0154名無しさん@お腹いっぱい。
NGNG0155名無しさん@お腹いっぱい。
NGNG化けてる側には X-Mailer: 無かった... orz
0156KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG:call AL_decode_entityreference_with_range('%')
よ、読めるよママン…orz
0157名無しさん@お腹いっぱい。
NGNGな、何も起きなかったよman&woman
でも、hage.htmlで保存してブラウザにdrag&dropしたら読めたよ
でも、COBOLer(ry
0158名無しさん@お腹いっぱい。
NGNGCEditクラスの代わりにCVimクラスをnewすると、
エディットコントロール内の編集操作がvim likeになっているというw
0159名無しさん@お腹いっぱい。
NGNGぜひ書いてください
0160mattn@Vim%Chalice
NGNG昔に ActiveX 内で gvim を起動するコンポーネントを vim-dev に
送ったことがあります。
# そんなに反響なかったので作業やめちゃいましたけど...
# 出した日がエープリルフールだったからかなぁ...笑
0161mattn@Vim%Chalice
NGNG手元にはもうソースないんで ML のキャッシュなどから探してください。
0162名無しさん@お腹いっぱい。
NGNG/hogehogeとタイプしてから「ああmigemoにしたかった」と涙する場合もあるので
\cみたいな機能も欲しいなあ、と思いますた。
と書いてから、一度/hogehoge<CR>してからg/<C-P>すれば良いことに気付いたので
独り言になってしまいますたとさ。まる。
0163名無しさん@お腹いっぱい。
NGNGのペーストってどうやってやるんですか?
0164KoRoN@Vim%Chalice ◆8XALICEsdk
NGNG<C-R>" とタイプしてください。ダブルクォートの代わりに a-z や数字もしくは *
を指定すれば :regで示されるものを入力することができます。
■ このスレッドは過去ログ倉庫に格納されています