■掲示板に戻る■ 1- 101- 201- 301- 401- 501- 601- 701- 最新50

vim6

1 :名無しさん@お腹いっぱい。 :2001/05/25(金) 13:18
vim-6.xに関する専門的スレッドです。

323 :名無しさん@お腹いっぱい。 :2001/07/29(日) 16:48
行移動が便利です。
コンパイルエラーの箇所へジャンプするときなんて、
vi系使っていて良かったと涙しちゃいます。

324 :名無しさん@お腹いっぱい。 :2001/07/29(日) 22:48
>>322
まったくです。とりあえず、お約束ではありますが、
ファイルを開いて jjj... なんてのは、定番の笑い話ですよね。

一区切りついたときに、気付くと ^[ 押して :w してたりしますね。

325 :名無しさん@お腹いっぱい。 :2001/07/30(月) 01:20
autocmd で [No File] をマッチさせるにはどう記述すればよいのですか?
:new (引数なし)したときだけ buftype=nofile を設定したいのです。

326 :KoRoN :2001/07/30(月) 01:31
:command! -nargs=0 Scratch new | set bt=nofile
というようにコマンドを定義すれば:Scratchで同じことが出来るようになります。
私はこうやってますがこの方法じゃダメでしょうか?。

327 :KoRoN :2001/07/30(月) 01:33
イカんです。下げ癖が付いているので上げておきます。

328 :名無しさん@お腹いっぱい。 :2001/07/30(月) 01:44
>>326
なるほど。再定義ですか。
なるだけ細かく設定したいところだけど仕方ありませんね。
ありがとうございます。

329 :名無しさん@お腹いっぱい。 :2001/07/30(月) 02:02
:cw
で grep などの結果をウィンドウに表示してジャンプするできますが、
これを
:ls
の結果に対してできるコマンドはありますか?

330 :KoRoN :2001/07/30(月) 02:18
>>328
関数を呼び出すことも出来ますからnewを見るだけなら、autocmdでイベントをフックよりもスマートでは無いでしょうか?。
もっとも:help :newをみればどのようにイベントが飛ぶか書いてあるので、それを参考にautocmdでやってみるのも良いのでは?

>>329
:Explorerもしくは:Sexplorerしてみてください。これで望む操作の代用になりませんか?

331 :KoRoN :2001/07/30(月) 02:22
あ、vim6がapでβになった。

332 :329 :2001/07/30(月) 02:38
>>330
確かに :Explore は便利なのですが、
:ls の結果なら必要なファイルのみで出来るので…

まあそれでも
:b {nr}
で十分なのですが。

333 :KoRoN :2001/07/30(月) 03:11
本当にlsを使いたいのならば、要は適切にmakeprgとerrorformatを定義すればよいのでしょう。

334 :名無しさん@お腹いっぱい。 :2001/07/30(月) 04:17
>>333
ってどういうことでしょうか?
プログラミングしていないときでも別ウインドウに :ls の結果を表示して
編集しているファイルをいったりきたりしたいのですが、どうも無理のような気が
してきたので、自分でそういうスクリプトを書いてみようかと思います。

335 :334 :2001/07/30(月) 06:57
と思ったけど、$VIMRUNTIME/plugin/explore.vim を見て挫折した。

336 :KoRoN :2001/07/30(月) 10:51
>>335
なるほどなるほど。apのリリース作業で疲れてて:lsだったことに気が付きませんでした。ごめんなさい。

いちばん簡単なのはGUIを使って「バッファ」のメニューからtear off(ハサミの項目)を選択すること
ではないでしょうか。こうすると:lsの結果がボタンになってますから…でもこれだとキーボードからの操作が…。
確かにバッファリストウィンドウはあっても良いかもしれませんね。

337 :334 :2001/07/30(月) 12:41
>>336
おぉ、menu 消してたので知らなかったよ。けっこう便利だね。

338 :名無しさん@お腹いっぱい。 :2001/07/30(月) 13:16
たまたま気づいたんだけど WantToDo_j.txt の中の書き方のように、
先頭を -<スペース> で始めた文章は囲んで gq やっても
綺麗にぶらさがって(?)くれますね。

'-' のほかに '*' でも同様だったけど、
この設定ってどこでやってるんでしょ?

339 :KoRoN :2001/07/30(月) 13:39
format周りは複雑で把握できていないところがあるのですが、
gqは$VIMRUNTIME/plugin/format.vimによって日本語禁則処理有りのものに置き換えられています。
確かformat.vimでは'formatoptions'の値を見て、
極力オリジナルのgqと同様の動作をするように作られています。
よってformatoptionsを研究すれば何かわかるかもしれません。

340 :名無しさん@お腹いっぱい。 :2001/07/30(月) 13:55
すごく初歩的なことだけど、
vim スクリプトってコマンドの後の変数とか文字列とか何が展開されるかわかりにくいよね。

set ○○=××
の××は"××"て書いたら " がコメントとみなされて空文字列が入るのに
let &○○="××"は普通に通ったりとか
set とか so の後は環境変数やオプション変数(?)は展開されるのに let でつくられた変数は展開されないとか。

多分本当は始めから
set ○○="××" とか source "△△"
っていう書き方をして統一すればよかったんだろうけど
設定ファイルに互換性を持たせるためにそういうわけにもいかずに set とかは自動的にダブルクォートで囲まれたような
挙動をすることにしたんだろうね。
解釈あってる?

#しかし α とか β とか思えないほど安定してるな。一回も落ちたことないよ。
#ところで ap で printersettings が printeroptions に変わったのに syntax/vim.vim は変更されていない。

341 :KoRoN :2001/07/30(月) 14:31
>>340
ソースにあたってないので正確ではないですが、おそらく違うでしょう。
スクリプトでオプションに設定する値を動的に生成して、
実際に設定したいという欲求があれば、それは:executeを使えばできるわけです。
:execute "set " . name . "=".value
こんな感じで。

でもこの表記は面倒な上にわかりにくいので、せっかく変数と代入:letという仕組みがあるのだから、
そいつにオプションを設定できる機能を持たせよう、というということではないでしょうか。
つまり「:let &name = value」は上で示すexecuteコマンドのエイリアスだと考えるのが正しいでしょう。
# &によるオプションの値の参照は説明できていませんけど勘弁してください。

vimを、letを含むスクリプトのevalベースで捉えることができれば確かに美しくて理解しやすくなりますが、
それではvimがviであるという本質を見誤っています。vimはevalが無くても機能するのですから。

# その変更を行った人物とsyntax/vim.vimのメンテナーが別人物なのでしょうね。どうしたってラグがでますよ。

342 :340 :2001/07/30(月) 17:19
># &によるオプションの値の参照は説明できていませんけど勘弁してください。
これは僕の勘違いです。
set ○○=&×× という書き方はできませんでした。

なるほど、あくまでも eval は追加機能だということですね。
これで納得できました。

でも個人的には、どうせならスクリプトを解釈する機能はコンパイル時に外せないようにして
すっきりした書き方にしてしまってもよかったんじゃないかなという気もしますが。

343 :KoRoN :2001/07/30(月) 17:57
>>342
> すっきりした書き方にしてしまってもよかったんじゃないかなという気もしますが。

私もそういうふうに考えたことがあったのですが、
それを極論していくとLispをベースにvimを再構築することが、
一番すっきりすることになってしまったんですよ。
ってそれemacsやん!、というわけでそれ以降考えるのは止めました。
この適度なゴタゴタ感、つぎはぎな感じこそがvimがvimたる所以なのではないでしょうか。

344 :名無しさん@お腹いっぱい。 :2001/07/30(月) 23:16
:autocmd や :map や :command
などの結果を別ウインドウで表示ってできませんか?
ただ、ドバーっと流れるだけじゃ不便です。

345 :KoRoN :2001/07/31(火) 00:11
なんか出来そうで出来ませんねぇ…autocmdやgroupで縛ったりくらいはできますけど。
それとも、何か見落としていることがあるのかしら?。

346 :名無しさん@お腹いっぱい。 :2001/07/31(火) 16:44
gVim-6.0ap(Win)にしてみたのですが、
gvimディレクトリ内のvimを読んでくれない(?)のか、
vimrc内でcmdheight=1としてもコマンドウィンドウの高さが2なんですよ。
gvim立ち上げて:set cmdheight=1を入力すると高さが1になるんですけどね。
2だと少々大きく感じるので、1にしたいですなぁ

347 :KoRoN :2001/07/31(火) 17:26
>>346
もうしわけないです。$VIM/gvimrcを見てください。
そっちでもcmdheight=2を設定してしまっているのです。
gvimrcにあるほうは削除してください。
gvimrcからvimrcに設定を移動したのですが、消すのを忘れてました。

個人用の設定は$HOME/_vimrcか$VIM/_vimrcに書くのをオススメします。
そうしていれば今回のようなことはなかったハズです。

348 :名無しさん@お腹いっぱい。 :2001/07/31(火) 17:35
それがうまく効かないんですよね。
$VIM/gvimrcに set cmdheight=2が。
で、$HOME/_vimrcに
set cmdheight=1 と書いたのですが、これも変化無し…

間違って前バージョンに上書きしたのがまずかったのかな?

349 :KoRoN :2001/07/31(火) 17:43
>>346-347
うそです。原因はちょっとだけ違っていました。

対処法は$VIM/_gvimrcの最後にcmdheightの設定を追加するか、
個人設定ファイル_gvimrcで行なってください。

350 :名無しさん@お腹いっぱい。 :2001/07/31(火) 18:27
>>343
あ、同じように考えたことがありました。
クリーンに設計しなおそうと思うと emacs になってしまうん
ですよね。
以後、vi は kiss であってこそと nvi にとどめ
たまに emacs 使います。
ただ、左脳的にきれいな emacs が必ずしも使いやすさと直結するかと
思うとまた懐疑的なのが不思議な所であったりします。

351 :名無しさん@お腹いっぱい。 :2001/07/31(火) 18:47
OKです。直りました。
やっぱりKoRoNさん、vim6本を執筆しなきゃ。
出版されたら絶対買っちゃうから(wara

352 :KoRoN :2001/07/31(火) 19:01
では出してくれる出版社募集中ということで(藁

353 :KoRoN :2001/07/31(火) 19:01
では出してくれる出版社募集中ということで(藁

354 :emacser :2001/07/31(火) 19:03
>>343
いーなー、LISP な vi。

355 :名無しさん@お腹いっぱい。 :2001/07/31(火) 19:09
オライリーでいいんじゃない?
でもVi本が7月に出る予定だったしな。

356 :KoRoN :2001/07/31(火) 19:18
>>343,>>350,>>353
実はこの話には後日談があります。実際にやってみようかと思ってしまったんです。
ベースは当時のめりこんでいたScheme処理系から自作ということを考えちゃいました。
でも、既存のものを再発明しても無駄ですからターゲットをemacs-lispに変更しリサーチに入ったのです。
viper-modeのimproved版でも作るかね〜ってな勢いです。

が…Emacsの厚い本も買ったのですが3日でプロジェクトはクローズしました。
指がviを愛してしまっているのでまともにMeadowを扱うことができませんでした。
# 昔はもうちょっとなんとかなったものですが。
どうせ続けていたってvimに及ばないものになっていたでしょうけどね。

357 :emacser :2001/07/31(火) 19:20
>>356
期待 age (藁

358 :関係ないが :2001/07/31(火) 22:44
>>355
オライリーって訳本のイメージしかないんだけど
原著者が日本人の奴ってあるん?

359 :名無しさん@お腹いっぱい。 :2001/07/31(火) 23:15
>>358
http://www.oreilly.co.jp/BOOK/jlinux/
http://www.oreilly.co.jp/BOOK/rubydkr/
など。

360 :名無しさん@お腹いっぱい。 :2001/08/01(水) 09:33
http://www.ruby-lang.org

361 :名無しさん@お腹いっぱい。 :2001/08/01(水) 09:37
vim-6.0ap

362 :名無しさん@お腹いっぱい。 :2001/08/02(木) 04:51
vim6ap 恐らくバグ

'statusline' で %*{number} … %*
で囲ったところが
hi User{number}
でのハイライト表示が効かなくなっている。

363 :KoRoN :2001/08/02(木) 07:59
>>362
どのOSのどのバージョン(ターミナルかGUIか)なども書いてくれると嬉しいです。
配布しているgvim6.0apのWinとMac版でhelp 'statusline'にある例を試した限りではちゃんと働いているようです。
  :set statusline=%<%f%=\ [%1*%M%*%n%R%H]\ %-19(%3l,%02c%03V%)%O'%02b'
  :hi User1 term=inverse,bold cterm=inverse,bold ctermfg=red gui=inverse,bold guifg=red
あと実際にうまく行かなかった設定例も書いてくれるとありがたいです。

364 :362 :2001/08/02(木) 11:17
スマソ。
勘違いでした。
colorscheme で hi clear されていた。

365 :362 :2001/08/02(木) 16:43
どうも hi clear の挙動が変わったみたいやね。

366 :KoRoN :2001/08/02(木) 17:18
むしろ今までちょっとおかしなところがあった、と考えたほうが良いかもしれません。

367 :名無しさん@お腹いっぱい。 :2001/08/07(火) 10:23
まげ

368 :名無しさん@お腹いっぱい。 :2001/08/07(火) 22:42
aq あげ

369 :名無しさん@お腹いっぱい。 :2001/08/08(水) 10:18
どこかに Vim5 や 6 の使い方、設定等を詳しく解説している webpage
はありませんか? Syntax highlighting や拡張子別に設定を変更する
方法とか、C tags までも包含しているとありがたいです。

要はこのスレや vi スレを体系的にまとめてあるようなページを
探しているのですが、どうでしょう?

370 :344 :2001/08/09(木) 21:36
遅ればせながら自己解決。

> :autocmd や :map や :command
> などの結果を別ウインドウで表示ってできませんか?
> ただ、ドバーっと流れるだけじゃ不便です。

http://vim.sourceforge.net/
の tip#95 より

:redir @a
:au
:redir END

で @a に :au の結果が入る
:au の代わりに :silent au
だとレジスタにしか出力されない。

371 :名無しさん@お腹いっぱい。 :2001/08/10(金) 02:17
全角空白を明示的に示すにはどうすればよいですか?

372 :emacsのちvim :2001/08/10(金) 04:12
>>371
listcharsみたいなのは無いのではないかと。
常に明示的に表示しておきたいなら却下だけど、
簡単な方法として、hlsearchして'/'や'?'で探すってのはどう?
これで気に入らないなら、scriptかsyntax highlight
ってところに落ち着くかと。

373 :371 :2001/08/10(金) 09:30
> これで気に入らないなら、scriptかsyntax highlight
そう思って、
syntax match DoubleSpace " "
hi DoubleSpace guifg=fg guibg=#eeeeee
っていう記述を _gvimrc に書いたんだけど
どうもこれって最初に開いたバッファにしか適用されないみたい。
どうすればよいの?

374 :emacsのちvim :2001/08/10(金) 18:50
>>371=>>373
autocmdを使って、ファイルの読み込みや名無しバッファ作成のタイミングで、
目的のsyntaxをカレントバッファに設定しましょう。

function! ActivateDSindicator()
  syntax match DoubleSpace " "
  hi DoubleSpace guifg=fg guibg=#eeeeee
endf
augroup invisible
  autocmd! invisible
  autocmd BufNewFile,BufRead *.txt call ActivateDSindicator()
augroup END

詳しくは、:he :autocmd, :he :syntax, :he mysyntaxfile,
$VIMRUNTIME/syntax/syntax.vimなどを参照のこと。

375 :371 :2001/08/10(金) 23:43
>>374
ありがとう。が、もうひとつ問題が…

syntax match DoubleSpace " " containedin=ALL
がなぜか
hi SpecialKey term=bold ctermfg=DarkBlue gui=bold guifg=#4400ff guibg=#f4f4f8 " FileType=vim
という行で全角空白が2個並んでいるとき2個目以降しか highlight 表示されない。
FileType が vim じゃないときや、行頭の hi を変更すると正しく highlight されるのだが…

376 :KoRoN :2001/08/10(金) 23:56
>>375
今ひとつ意図が理解できていないのですがこうしたらどうなりますか?。
syntax match DoubleSpace " \+" containedin=ALL

377 :371 :2001/08/11(土) 00:13
>>376
\+ つけてもダメみたいです。

要は何がしたいのかというと、全角空白を Comment の中にあろうが
Constant の中にあろうが問答無用で hightlight 表示( 半角空白と区別 )したいということです。

でなんとか syntax.txt を読んで
syntax match DoubleSpace " " containedin=ALL
すればよさげだぞ、ということが分かったのですが、( なぜか keyword ではうまくいかず )
filetype=vim の時、行頭に hi やら s やらあるときに正しく highlight されなくて困っているというわけです。

例えば、
hi SpecialKey te   rm=bold ctermfg=DarkBlue gui=bold guifg=#4400ff guibg=#f4f4f8 " FileType=vim
の3つの全角空白の内後ろ2つしか highlight されないでいる。

378 :名前いれてちょ。。。 :2001/08/11(土) 02:45
windowの画面分割で、Ctrl-W s だと上下に半分ずつにしかならない。
それだとソースコードを追っかけるときとかちょっとつらいから、
出きれば左右に分割できると嬉しいんだけど。

webで散々調べたけど、上手く hitせず。
スクリーンショットでは出来るみたいなんだけどなぁ。

379 :emacsのちvim :2001/08/11(土) 03:14
>>378
vim6使ってC-w v。
なぜ、まず:helpしないのかが理解できん。

380 :emacsのちvim :2001/08/11(土) 05:10
>>371
同様の現象が、6.0apjで確認できました。
teにつづく全角スペースまでが、teで始まるキーワード(hiの引数)
の一部として、DoubleSpaceより優先してマッチングしている感じです。
試しに、行頭に"を挿入してコメントとしたところ、3つ分のDoubleSpaceが
highlightされます。
ちなみに、hi、highlightのいずれでも上記症状に変化は見られませんでした。
もう少しvim.vimあたりを見てみます。

381 :KoRoN :2001/08/11(土) 06:48
>>378

highlightは詳しくないのでなんともいえませんが、随分昔にMLに流れた次のようなスクリプトが役に立つでしょう。
適当な名前で保存して:soしてみて下さい。

function! s:HiDiHi()
let l = line(".")
let c = col(".")
let id = synID(l, c, 1)
let attr_hi = synIDattr((id), "name")
let attr_trans = synIDattr(synID(l, c, 0), "name")
let attr_lo = synIDattr(synIDtrans(id), "name")
echo "hi<" . attr_hi . '> trans<' . attr_trans . "> lo<" . attr_lo . ">"
endfunction

nnoremap <silent> <F6> :call <SID>HiDiHi()<CR>

382 :KoRoN :2001/08/11(土) 07:30
>>378,>>380-381

:set isident=@,48-57,_
と設定してみてください。正しい対処法かはまったくわかりません。
'isident'がデフォルトの"@,48-57,_,128-167,224-235"だと、
vimHiGroupが"\i\+"に設定されていて全角空白の1バイト目0x81(==129)が\iにマッチします。
2バイト目は0x40(==64=='@')であるので\iにはマッチしません。
つまりsyntax解釈上、全角空白が分断されてしまったため起こった現象でしょう。

'isident'にMBが含まれる必要はないと思いますけど、なんかスッキリしてない状態であることは認めます。

383 :KoRoN :2001/08/11(土) 07:31
# ううう。さげ癖がついている
age

384 :371 :2001/08/11(土) 11:10
>>382
isident,iskeyword を "@,48-57,_" にしたら、hi のあとでも正しく highlight されるようになりましたが、
s のあとや、let の後ろでは以前として表示が思ったようにされません。
( let については2つ目以降どころかまったく highlight されず )

やっぱり素直に、/  して、:set hls の方がよいですかね?

385 :KoRoN :2001/08/11(土) 12:56
>>384
letは\kの問題です。全角文字は無条件でiskeyword(/\k)に引っかかるという
素晴らしい仕様のおかげですね。これについては修正パッチ作りました。
sは現在調査中で、[^a-z...]が全角にマッチしてしまうことが原因らしいけど…
ハッキリとはわかっていません。\z(\)との絡みもあるかと調査中。

386 :KoRoN :2001/08/11(土) 14:14
>>385
sについてわかりましたので補足。syn regionの指定にrs=s+1が付いてます。
これは検索の//{offset}と同じ意味ですが、syntaxのほうはMB非対応になっていました。
こいつが結構、修正に一苦労するかもしれません。

387 :名前いれてちょ。。。 :2001/08/11(土) 15:01
>>379
thanx!

もちろん :help したYO!
けど、いまいンストールされてるのが vim5.x だったと思った。
ひょっとしたら vim6 からじゃないとダメ?
まぁいいや。夏休みが終わったら確かめてみよう。

388 :KoRoN :2001/08/11(土) 17:20
>>387
横分割はvim6の機能です。っていうかココ、vim6のスレだし…

389 :名無しさん@お腹いっぱい。 :2001/08/11(土) 20:04
             ≡∩∩≡=
                 ≡| | || ≡=
   ゴゴゴゴゴ       ≡| | || ≡=
       ≡∧∧∧∧ | | || ≡=   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ≡((  ´Д`)///≡=   <  先生!Emacs信者の猛攻です!グハァ
    ≡//       //≡=      \_____________
   ≡/ / /|    //≡=
  _≡| | | .|    || ≡=
  ≡\\   ̄ ̄ ̄ ̄ ̄ ̄ ̄\\≡=
  ≡| ||\             \\≡=
  ≡| ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄≡=
  ≡| ||  |||  ̄ ̄ ̄ ̄ ̄ ̄||| ≡=
      ≡.|||             ||| ≡=

390 :名無しさん@お腹いっぱい。 :2001/08/11(土) 20:57
warata

391 :371 :2001/08/12(日) 04:22
>>385-386
わざわざ申し訳ないです。
syntax の MB 対応、期待してます。

392 :KoRoN :2001/08/12(日) 09:18
>>391
期待されても困るんですよね(^-^;;;。前者は問題ありませんが後者をを修正してしまうと、
ただでさえ重くなる原因のsyntaxを激重にしてしまう可能性が高いんですよ。
果たしてそこまでしてsyntaxを完全にMB対応させる意味があるのか、速度とのトレードオフです。
# 実験はしてみますけど世の中に出るという保証はできません。

393 :名無しさん@お腹いっぱい。 :2001/08/13(月) 00:26
結構、vim6ユーザが増えてきているね。

394 :371 :2001/08/13(月) 19:23
KoRoN さん、vim6ar さっそく落としました。
全角空白が完全ではありませんが正しく表示できるようになりました。
ありがとうございます。

395 :KoRoN :2001/08/13(月) 20:06
sの後のデリミタとしての全角に対応させることはできませんでした。
その修正をしたら別の場所で不具合が出てしまったもので(^-^;

396 :名無しさん@お腹いっぱい。 :2001/08/15(水) 01:58
vim script見ると萎えてしまうっすよ。
|でも個人的には、どうせならスクリプトを解釈する機能はコンパイル時に外せないようにして
これわかんないので解説希望っすよ。
|この適度なゴタゴタ感、つぎはぎな感じこそがvimがvimたる所以なのではないでしょうか。
僕には適度じゃないっすよ。僕の大好きなviの一番人気クローンの
スクリプト言語があれじゃ悲しいっすよ。このままじゃvim捨てっすよ。

397 :名無しさん@お腹いっぱい。 :2001/08/15(水) 01:59
そういう方は nvi に回帰しているかもめ

398 :名無しさん@お腹いっぱい。 :2001/08/15(水) 02:38
nvi使ったことないっすよ。vimと比べてどうっすか。

399 :KoRoN :2001/08/15(水) 02:39
>>396
PerlやPythonやRubyやTclをvim script代わりに使う方法もありますが、ある程度vim scriptの知識は必要になります。
また日本語の解説ページは現在のところ存在していないので:help perl等などを自力で読めなければ結局のところ使い切れないでしょう。
そんな状況ですのでvim scriptが動機でvimを捨てられるのなら、
vimに染まりきっていない今がチャンスなので思い切って捨ててしまうのが上策です。

言語の明快さ・簡潔さにこだわるのであれば個人的にはLISPがオススメです。
となればエディタは自然とEmacs系ですね。
さもなくばBram氏に「スクリプトの仕様変更して」とお願いするしかないでしょう。

400 :名無しさん@お腹いっぱい。 :2001/08/15(水) 02:44
nvi ユーザでしゅ。
vim の利便性を十分に享受していないと思うので
比較にならんのですが、自分のメモを貼り付けるです。

nvi を使おう

tab-complete を使う
set filec= を使う。
tab にアサインしたい場合は set file=\[tab] の様にすればよし。

ex コマンドのヒストリを使いたいよ
set cedit= を使う。
shell の set -o vi ライクでちょー使えるよ。#vim の ^P でのヒストリ機能よりイイかも。

検索は大文字小文字を区別したくないよ
set ignorecase でよし。

コマンドを使いたいよ
set shell=/bin/ksh など。

インデントはどうするの?
set shiftwidth=4 で ^T と ^D を使えばよし。

401 :名無しさん@お腹いっぱい。 :2001/08/15(水) 04:35
>>399
|また日本語の解説ページは現在のところ存在していないので
|:help perl等などを自力で読めなければ結局のところ使い切れないでしょう。
萎えさえしなければPerlでもPythonでもRubyでもTclでも
ソースといくつかのサンプルさえあれば使い切る自信あるっすよ。
問題は萎えないか?っすよ。Perl/Python/Rubyで萌えられそうなら
そっちでやるっす。経験者の意見希望っす。
|言語の明快さ・簡潔さにこだわるのであれば個人的にはLISPがオススメです。
読みやすさと使いやすさにこだわるっす。LISPは確かに構造が
単純す。emacslispのコード書いたことありますがLISPならではの
恩恵こうむったことないっす。「オススメ」の理由知りたいっす。
|となればエディタは自然とEmacs系ですね。
自然すか?viとは合わないっすか?
|さもなくばBram氏に「スクリプトの仕様変更して」とお願いするしかないでしょう。
あのスクリプト言語つくったのがBramさんって人すか。(vim作った
人?)Perl/Python/Rubyの方がよければ仕様変更でなくて置き換え
させるっす。

402 :KoRoN :2001/08/15(水) 08:09
> 読みやすさと使いやすさにこだわるっす。LISPは確かに構造が単純す。
> emacslispのコード書いたことありますがLISPならではの恩恵こうむったことないっす。
> 「オススメ」の理由知りたいっす。

LISPそのものというよりも関数型言語ゆえの良さです。
専門家たちに聞くのが一番なので次のようなスレで聞いてみてください。
■ LISP Scheme http://piza2.2ch.net/test/read.cgi?bbs=tech&key=987169286&ls=50
■ Haskell http://piza2.2ch.net/test/read.cgi?bbs=tech&key=996131288&ls=50

403 :名無しさん@お腹いっぱい。 :2001/08/15(水) 10:04
うーん、--enable-multibyte で作っても 2byte文字上のカーソル移動が
上手く行かない。
他に configure に指定した option は、
--prefix=/usr/local --host=i686-pc-cygwin
--enable-broken-locale --enable-xim --enable-fontset --with-x=yes
--with-tlib=ncurses

以下だけでもやってみた。
--enable-multibyte --enable-xim --enable-fontset

404 :KoRoN :2001/08/15(水) 11:18
>>403
カーソル移動に関しては--enable-multibyteがあれば正しくなります。
あとはvimrcでset encoding=japanを設定するだけです。

405 :名無しさん@お腹いっぱい。 :2001/08/15(水) 13:16
>>404

すみません。403 は書きかけで up してしまいました。

set encoding=japan
set fileencoding=japan

としています。ついでに

set termencoding=japan

とも入れてます。
でもダメなんです。
また、vim 起動後に、

:set encoding=japan

などとしてもダメでした。
更に、web で見かけた、

:set charcode=japan

としたら、

`Unknown Option' と怒られました。

406 :KoRoN :2001/08/15(水) 13:45
>>405
…見落としてました。cygwinですか?。ビルドしているのがcygwinで
利用したいのはコマンドプロンプトからSJISで利用したいのですか?。
それともtelnetしてEUCで利用したいのですか?。
他にもcygwinでnot XなGUI版をコンパイルする方法もあったと思います。

407 :名無しさん@お腹いっぱい。 :2001/08/15(水) 18:09
>>406

すみません。全然環境に触れてなかったですね。

$ uname -a
CYGWIN_95-4.0 OGAWA00 1.1.8(0.34/3/2) 2001-01-31 10:08 i586 unknown

な環境で、ASTEC-X を使い、{Rxvt, Kterm} 上で Vim を使いたいのです。
# 更に terminal 上で、screen も動かせればとも思ってますが。

日本語に関しては、ASTEC-X で XIM 経由で Windows-IME (WXG4) から入力
しています。

ここもちょっと問題ありっぽいんですが、今回の件は、入力済みの日本語
ですので、IME 云々は除外して良いと思ってます。
はしていない) 状態で、件の現象となりますので。

件の現象と書きましたが、全然ちゃんと書いてないですね。

{h, l} でのカーソル移動を多バイト文字上で行なおうとすると、
カーソルが 1バイトずつしか移動しない。

または、

x での削除を多バイト文字上で行なおうとすると、1バイトずつしか
削除されない。

と言う現象でした。

408 :KoRoN :2001/08/15(水) 20:35
>>407
コンパイル方法はあっていそうなので設定の問題だと思います。
cygwinを使うとMake_cyg.makを使わずに./configure&&makeでインストールしたとしてもcp932ベースで構築されます。
そのため:set encoding=japanとすると:set encoding=cp932ということになってしまいます。
なお通常のUNIXならば同様の方法でeuc-jpベースで構築されるので
:set encoding=japanは:set encoding=euc-jpと同義になります。

>>403,>>405,>>407でやろうとしていることを見る限りではencodingはcp932で
termencodingはeuc-jpでなければならないのでしょう。
# ktermってエンコード変えることできるんでしたっけ?
termencodingを正しく働かせるにはcygwin付属のlibiconvを使う必要がありますが…そのやり方はわかりません。
またcp932以外のファイルを編集するには、
正しくcp932へコンバートできるようにfileencodingsを設定してやる必要があるので注意してください。
よって必要な設定は次のようになると推測されます。

:set encoding=cp932
:set termencoding=euc-jp
:set fileencodings=iso-2022-jp,utf-8,utf-16,ucs-2-internal,ucs-2,euc-jp,japan,shift-jis

409 :WindowsCE版は? :2001/08/16(木) 00:37
WindowsCEで動くGUI版vimってあるでしょうか?
Emacs20.7が動く(色・フォントつき)んだから
vimも動けると思うんですが...
syntax highlightが使いたいんです.

#ひょっとしてコンソール版(CMD窓)でもハイライト表示できる?

410 :名無しさん@お腹いっぱい。 :2001/08/16(木) 01:28
>>400
インデントは、:set autoindent ?
すでに設定されているなら良いけれど...

411 :名無しさん@お腹いっぱい。 :2001/08/16(木) 02:05
>>402
Haskellスレ読んでるっす。面白いね。
そりゃ関数型には関数型の、論理型には論理型の、
オブジェクト指向にはオブジェクト指向の利点が
それぞれあるっす。エディタのスクリプト言語と
しての関数型ならではの利点を知りたいっす。
少なくともemacslispは関数型というよりバリバリ
副作用使われてるっすよね。
0.01歩譲ってLISPがベストとしてそのとき自然に
emacsになる理由が知りたいっす。
ストールマンが選んだからにはなるほどと思わせる
理由があると思うっす。それを知りたいっす。

412 :名無しさん@お腹いっぱい。 :2001/08/16(木) 04:45
起動中のgvimのバッファにロードさせる起動オプションってありませんか?(windows)
gvimをMDI風に使いたいもので。教えてください。

413 :名無しさん@お腹いっぱい。 :2001/08/16(木) 07:31
>>408

惜しいんですが、目的は果たせないです。
# 惜しいと言うのは、>>407 で日本語入力も問題ありと書いた部分が安定したと
# 言うことです。これはこれでとても助かりました。有り難うございます。

> cygwinを使うとMake_cyg.makを使わずに./configure&&makeでインストールしたとし
> てもcp932ベースで構築されます。
これが問題だったのは確かだと思われます。
しかし、当方の環境では、基本を euc-jp と考えてますので、

set encoding=euc-jp
set termencoding=euc-jp
set fileencodings=euc-jp,iso-2022-jp,utf-8,utf-16,ucs-2-internal,ucs-2,japan,shift-jis

とすることで、安定した日本語入力が出来る様になりました。
しかし、当初からの目的としている、

多バイト文字上での 1文字の扱い

については、悲しいことに変化がありません。

因みに >>405 で書いた、

:set charcode=japan

と言う option って本当はあるんでしょうか。
# 多分、
# Vim 掲示板 (http://ixeris.bios.ics.saitama-u.ac.jp/~koron/bbs/)
# で見たんだと思うんですが。

414 :名無しさん@お腹いっぱい。 :2001/08/16(木) 07:48
>>408

ああそうか。
> termencodingを正しく働かせるにはcygwin付属のlibiconvを使う必要がありますが
> …そのやり方はわかりません。
こっちの方が問題なのか。

libiconv は、libiconv-1.6.1 を install しています。
が正しく動作しているかどうかは判りません。

どなたか確認方法をご存じないですか??

415 :KoRoN :2001/08/16(木) 08:07
>>409
WinCE用にコンパイルされたものはがありません。
DOS版をCEのDOSエミュレータ(有料)で動かすのが現状です。

>>410
autoindentであってます。C言語以外用にはsmartindentとかもあります。
autoindentはvimrc_example.vimで定義されていますが、デフォルトではロードされません。
#私が配布しているgvim-6.0xではロードされるように設定されてますが。

>>411
gvimの話題ではないのでemacsのスレかソフトウェア技術の板で聞くと良いでしょう。
テキストエディタのスレもありますから。

>>412
6.0ar以降であればgvim --remote filenameで開けます。

>>413
> しかし、当方の環境では、基本を euc-jp と考えてますので、
ダメです。cygwinでコンパイルした場合にはvimはcp932を基本にしてしまいます。
os_unix.hの41行目のWIN32UNIXをdefineしなければeuc-jpベースにできるハズですが。

> set fileencodings=euc-jp,iso-2022-jp,utf-8,utf-16,ucs-2-internal,ucs-2,japan,shift-jis
これだと上手くコンバート出来ませんよ。fencsは先頭から順にiconvへ渡して変換に成功したところで
トライアルをやめてしまいます。なのでcp932(shift-jis)のファイルを開いても最初のeuc-jp→euc-jp変換で止まってしまいます。

> set charcode=japan
6.0の初期はこの名前を使っていましたが現在はencodingという名前に変わりました。

416 :KoRoN :2001/08/16(木) 08:16
>>414
libiconvってソースからcygwinでコンパイルしましたか?
私が配っているものはVC6でコンパイルしたものなのでちょっとズルして
cygwinと組み合わせると…ハングしました(笑)

なおlibiconvにはiconvというツールが付属します。src/iconv参照のこと。
こいつで一通りのチェックはできます。

417 :vimmer :2001/08/17(金) 02:13
久しぶりにvimの本家のサイトに逝ったら、何とvim-6.0arの欄のコメント部分にある
``BETA!"の文字がピッカピッカと点滅しているではないか。

いつの間に、βになったのよ。
正式版の出荷は、もうすぐかな。

418 :名無しさん@XEmacss :2001/08/17(金) 13:11
>>415

>> しかし、当方の環境では、基本を euc-jp と考えてますので、
>ダメです。cygwinでコンパイルした場合にはvimはcp932を基本にしてしまいます。
>os_unix.hの41行目のWIN32UNIXをdefineしなければeuc-jpベースにできるハズですが。

WIN32UNIX を undef して (単にコメントにしただけですが) make し直しました。
が状況は変りません。

>> set fileencodings=euc-jp,iso-2022-jp,utf-8,utf-16,ucs-2-internal,ucs-2,japan,shift-jis
>これだと上手くコンバート出来ませんよ。fencsは先頭から順にiconvへ渡して
>変換に成功したところでトライアルをやめてしまいます。なので
>cp932(shift-jis)のファイルを開いても最初のeuc-jp→euc-jp変換で止まってし
>まいます。

これは、cp932 のファイルに対して euc-jp -> euc-jp 変換が成功するってこと
でしょうか。

$ cat ja-vimtest4.sjis | iconv -f SHIFT-JIS -t EUC-JP
新規ファイルです。
Vim は WIN32UNIX を define せずに make し直しました。
$ cat ja-vimtest4.sjis | iconv -f EUC-JP -t EUC-JP
iconv: (stdin): cannot convert

となるので、失敗する様に思うのですが。全然違うこと言ってますか?
それとも、そもそも WIN32UNIX を殺して make しておけば、

set encoding=japan
set fileencoding=japan

で良いんでしょうか。

>>416

libiconv は Cygwin で source から make してます。

$ echo "あいうえお" | nkf -s | iconv -f SHIFT-JIS -t EUC-JP
あいうえお

となるので問題無い様ですが。

Rxvt, Kterm の方の問題なのかなぁ。

419 :KoRoN :2001/08/17(金) 14:17
>>418
なんかおかしいですねぇ…

> cp932 のファイルに対して euc-jp -> euc-jp 変換が成功するってことでしょうか。

そのつもりで書いたんですが…どうやら正確には違ったようです。
fencとencが同じ場合、vimはコンバートせずに生のまま開きます(:help 'fenc')。
結局その先のコードは試されませんから、起こる現象に限ってみれば同じことですけどね。

どうも非常に特殊な環境で使いたいようですから、
そういうときはまず一番単純なところからやってみるのが良いと思いますよ。
1. cygwinで--enable-multibyteだけでコンパイルして、コマンドプロンプトからsjisファイルが開けることを確認する。
2. 次にtelnet経由でiconvを使ってtermencoding=euc-jpでsjisファイルが開けることを確認する。
こんな感じで少しずつステージを上げていってはどうでしょうか?。

あ、ちなみにset encoding=japanってどこに書いてます?。
その設定ファイルが起動時に読み込まれてない、っていうオチはやめてくださいよ。
起動してから:set encしてeuc-jpが返ってこなかったらかなり鬱ですけど。

420 :409 :2001/08/17(金) 23:01
>>415 さんへ

>WinCE用にコンパイルされたものはがありません。
>DOS版をCEのDOSエミュレータ(有料)で動かすのが現状です。

ざんねんです.
とにかく情報ありがとうございます.
#はぁ

421 :KoRoN :2001/08/17(金) 23:16
>>420
コンパイラと実機をいただければ移植にトライしてみますよ(藁)

422 :名無しさん@お腹いっぱい。 :2001/08/18(土) 23:13
> h, l でのカーソル移動を多バイト文字上で行なおうとすると、
> カーソルが 1バイトずつしか移動しない。

6.0arをRedHat6.1J、libiconv 1.7で --enable-multibyte して
作ったのですが、上記症状がでてます。
vimrcは、gvim-6.0ar-w32j.tar.bz2 中のものをそのまま使用しています。
:set encすると encoding=euc-jp とかえってきます。


次100 最新50 (10:00PM - 03:00AM の間一気に全部は読めません)
名前: E-mail (省略可) :

read.cgi ver5.26+ (01/10/21-)