■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 最新50vim6
- 1 :名無しさん@お腹いっぱい。 :2001/05/25(金) 13:18
- vim-6.xに関する専門的スレッドです。
- 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 とかえってきます。
- 423 :409 :2001/08/18(土) 23:44
- >>421
Windows2000用のコンパイラ(VB/VC++ embedded)+
エミュレータ(PocketPC/PalmsizePC/HandheldPC)なら
CD-ROMお貸ししますが(^^)
実は,Emacs20.7 の WindowsCE移植パッチをダウンロードして,
win32→winceの移植の工数をざっと見積もろうとしたのですが,
パッチが3MBもあって萎えてしまいました.
(厳密にいうとパッチでなくて修正の入ったファイルのアーカイブだった)
ttp://www.rainer-keuchel.de/software.html
- 424 :名無しさん@お腹いっぱい。 :2001/08/19(日) 04:10
- Patch for vim to use GLOBAL
http://tamacom.com/unix/index.html#vim
ctagsと違ってどこで使ってるかわかる
vidbg (vi debug)
http://www.tildeslash.org/vidbg.html
vim6とは直接かんけーないけど、
こんなんあると便利
- 425 :名無しさん@お腹いっぱい。 :2001/08/19(日) 14:19
- >422
FreeBSD 3.4R上のvim-6.0ar, libiconv 1.7だけど、2バイト文字系は
ちゃんと2バイトずつカーソル移動する(つーかカーソル形状も2バイト分
になる)よん。
ちゃんとmakeできてるか、configureの出力とかldd vim(ってLinuxにも
あったっけ? リンクするshared libraryの一覧出す奴)結果とか調べて
みたら?
- 426 :425 :2001/08/19(日) 14:22
- RedHatだとデフォルトで(日本語非対応の)vimが入ってたりするから、
pathの関係で実はそっちが動いてたりして...
- 427 :KoRoN :2001/08/19(日) 18:29
- >>423
ありがとうございます。同じことを考えて友人に手配したところです。
チョコチョコとやってみたいと思いますので、
少し気長に期待せずに待ってもらえると嬉しいです。
- 428 :名無しさん@お腹いっぱい。 :2001/08/19(日) 19:32
- > ちゃんとmakeできてるか、configureの出力とかldd vim(ってLinuxにも
> あったっけ? リンクするshared libraryの一覧出す奴)結果とか調べて
> みたら?
見ることはできますが、それを見ることで何かわかるんですか?
> FreeBSD 3.4R上の
あ、FreeBSD信者様でしたか。ごめんなさい。
- 429 :422 :2001/08/19(日) 21:19
- 環境変数 LANG=ja で解決!
- 430 :名無しさん@Vim :2001/08/19(日) 22:16
- set fileencodings=iso-2022-jp,cp932,utf-8,utf-16,ucs-2-internal,ucs-2
set encoding=euc-jp
set termencoding=euc-jp
ってな感じで使ってる者です(Linux + libiconv).
ですが,これだと空のファイルや,英語のみのファイルは当然 iso-2022-jp と
認識されてしまいます.
でも encoding=euc-jp にしている事からも分かるように,出来ればそういう
場合は euc-jp として認識したいのです.
euc-jp を先頭に持って来ちゃったらこの問題は解決するものの,他の文字コー
ドのテキストは変換出来なくなってしまいますし,何か良い方法は無いでしょ
うか?
空ファイル問題は w3m での textarea への書き込みに使う時に,英語ファイル
問題は,拾って来たプログラムのソースに自分で日本語でコメントを付ける
時等に,該当ファイルが iso-2022-jp で保存されてしまいます.
毎回 :set fileencodinf=euc-jp とかやるのはちょっと面倒なのですが,何
か無いでしょうか?
まぁ iso-2022-jp でも特に困る事はそれ程無いと言えば無いのですが・・・.
- 431 :430 :2001/08/19(日) 22:18
- 書き忘れてました.バージョンは 6.0ar です.
- 432 :KoRoN :2001/08/20(月) 06:12
- >>430
次のスクリプトをpluginディレクトリに置くことで対処しています。
http://ixeris.bios.ics.saitama-u.ac.jp/~koron/software/vim/checkjis.vim
iconvによるコンバートが発生して時間がかかってしまうことにはかわりありませんが
w3mから2chに書き込む(!!)時には重宝するでしょう。
- 433 :430 :2001/08/20(月) 10:21
- >>432
をぉ!ありがとうございますm(_ _)m.
なる程,マルチバイト文字が無かったら
「fileencoding を空」にしちゃえば良かったんですか.
お勉強になりました.
- 434 :425 :2001/08/20(月) 11:37
- >>428
なんか言われるとすぐに信者かよ。うぜー奴。
要は「実はちゃんとマルチバイト対応でmakeできてないんじゃないか?」
って事なんだけどね。
続きを読む
掲示板に戻る 全部 前100 次100 最新50read.cgi ver5.26+ (01/10/21-)