トップページ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あたり。
0492名無しさん@お腹いっぱい。NGNG
キタ━━━━(・∀・)━━━━!!
0493KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>491
autodate.vimは「自動で更新すること」が目的ですから、それに対してオプションと
はいえ手動更新の優先機能つまり「自動更新の無効化」を追加してしまえば、そもそ
もの存在意義に矛盾しますよね。どうしても手動だけでやりたいのならば
:let plugin_autodate_disable = 1
した上で、現在日時を入力するためのmapなりプラグインを自分で書いた方がマシな
んではないでしょうか。
0494名無しさん@お腹いっぱい。NGNG
autodate_vim: disable:
みたいにファイルの前後5行に書いておくと日時入力を無効にできる、
というのもありかと。
0495KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>494
使いたくないならばキーワードを変えるか、書かなければ良いだけです。
0496名無しさん@お腹いっぱい。NGNG
キタ━━━━(・∀・)━━━━!!
0497名無しさん@お腹いっぱい。NGNG
指定範囲の複数の行頭に文字を挿入する方法を教えてください。
0498名無しさん@お腹いっぱい。NGNG
行をまたぐ文字列をコピー(ヤンク)する方法を教えて下さい。

abcdefghijklmnopqここから〜
〜ここまでrstuvwxyz
0499名無しさん@Vim%ChaliceNGNG
>>497
Vで範囲指定して
:'<,'>s/^/strings to insert/

>>498
vで範囲指定してy
0500名無しさん@Vim%ChaliceNGNG
      ∧ ∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ( ゚Д゚) < ついでにムーンウォークで折り返し地点ゲトー!!
     ./ つ つ  \_____________
  〜(_⌒ヽ      (´⌒(´
     .)ノ `J≡≡≡(´⌒;;;≡≡≡
         (´⌒(´⌒;;
    ズザーーーーーッ
0501名無しさん@お腹いっぱい。NGNG
>>499
お陰で快適な編集作業が得られました。
0502名無しさん@お腹いっぱい。NGNG
キタ━━━━(・∀・)━━━━!!
0503454NGNG
>>497
<C-V>で数行分の行頭をブロック選択。
Iで挿入したい文字を入力して<ESC>で終わり。

ここの人たちには邪道って言われそうだ・・・
0504名無しさん@お腹いっぱい。NGNG
名前残ってた・・・
0505名無しさん@お腹いっぱい。NGNG
(;´Д`)
0506名無しさん@お腹いっぱい。NGNG
>>503
初めて知りました。
便利ー。

しかし、>>497氏はこっちを求めていると推測してみる。
http://members.jcom.home.ne.jp/advweb/index_p1_s9.html
0507名無しさん@お腹いっぱい。NGNG
helpによると, set enc=japanした時は,
    「2   japanJapanese: on Unix "euc-jp", on MS-Windows cp932」
だそうで, じゃあcygwinの時は? と思ってやってみたらcp932なんですね.

cygwinのterminal(rxvt)がeucj modeなのでeuc-jpと判断されたら嬉しかったのにぃ〜
0508KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>507
ネイティブなコンソールがcp932なので、そういうパッチが送られ採用された経緯があります。
+iconvならtermencodeを使うと上手く行くかもしれません。
0509名無しさん@お腹いっぱい。NGNG
範囲を指定して、「!」でコマンドラインのコマンドを呼び出すと、
その指定した範囲の行が置きかえられてしまうでしょう?

 :51,58!sort

この範囲指定のコマンドの実行を、現状のテキストを置き換えないで実行して
結果を取りたいのですよ。
で、なにか簡単にできる方法ってあったりしますか?

ちなみに今はこんなふうにしてます。
 :51,58w temp.txt
 :!sort temp.txt
0510509NGNG
あーそういや、実行して、すぐにuで元に戻すってのがありますね。
この方法でいいのかな。
0511507NGNG
>>508
なるほど.

ところで, 507で書いたようにeucjなterminal@win + cygwin環境で,
cp932のファイルを開くと文字化けしてしまいます.

encは無理矢理euc-jpにし, Kaoriya版のvimrcを$HOME/.vimrcに使わせて頂いているので,
encをeuc-jpにした時, fencsは
  ucs-bom,ucs-2le,ucs-2,iso-2022-jp-3,utf-8,cp932
です.

echo has('iconv')には1を返すし, iconv -f CP932 -t EUCJP XXX.txtでは
正しく読めています.

うむむ謎…

tencというのは知らなかったので, ちょっとこいつを弄んでみます.
0512KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>509
必要な範囲を新しいバッファへ切り出して、そっちをフィルタにかける方法もありま
す。

>>511
Cygwinで./configure && makeしてもWin32APIを使ってたような記憶があります。
なのでencを無理矢理euc-jpにするにはソースを弄らないと意味が無いハズです。
Windowsで使うのならば基本的にencはcp932にして、rxvtを組み合わせたい時には
tencをeuc-jpにすれば、理論上は動作することになります。
0513511NGNG
>>512
仰せの通りにして問題なく表示されました.
あいかわらずKoRoNさんの知識には脱帽です.
ありがとうございました.
0514名無しさん@お腹いっぱい。NGNG
if has("autocmd")
  autocmd FileType changelog
  map ,d ggi<CR><CR><ESC>kki<C-R>=strftime("%Y-%m-%d")<CR>
  \ 774 <774@hoge.jp ><ESC>o<CR><TAB>*
  \ | map ,n ggo<CR><TAB>*
endif

というコードを.vimrcに貼り付けたら
gvimを起動するたびにダイアログが表示されるようになりましたが、
いちいちダイアログを閉じるのがめんどくさいので、表示しないように
する方法はありますか?
0515KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>514 単純にmap ,dの前に\を付け忘れているんじゃないですか?
0516名無しさん@お腹いっぱい。NGNG
>>515
すみません、\をmap ,dの前に入れたら動かなくなりました。
0517KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>516
そもそもどういうダイアログが出て問題になっているのかわからんです。514に書かれ
た設定は、ft=changelogの時にだけ有効になるmapをしようとしているものだと推測さ
れますが、文法的にはmapの前に\が無いことが問題になります。なので515という指摘
をしたのです。

他に考えられる問題点として、行頭の \ で行を連結するというのは特定の条件下では
使えません。
:help cpo-C
あとautocmdの中で直接mapするよりはfunction定義してその中で定義したほうがエレガ
ント、というのがあります。
if has("autocmd")
  function s:AutocmdFiletypeChangelog()
    map ,d ggi<CR><CR><ESC>kki<C-R>=strftime("%Y-%m-%d")<CR> 774 <774@hoge.jp><ESC>o<CR><TAB>*
    map ,n ggo<CR><TAB>*
  endfunction
  autocmd FileType changelog call <SID>AutocmdFiletypeChangelog()
endif
0518名無しさん@お腹いっぱい。NGNG
最近のNetBSD-currentのcitrus iconvでコード変換がうまくいかないので調べてみました。
具体的には
VIM6.2.098で
set encoding=japan
set fileencodings=ucs-bom,iso-2022-jp,utf-8,ucs-2le,ucs-2,cp932
のとき,どんなファイルを読んでもiso-2022-jpとして処理されてしまう。
というものです。

わかった事は,
fileio.c の readfile() 内の iconv() の戻り値の処理が
0と-1の処理しかないので,おかしくなっているみたい。

1以上の値が返ったときもエラーとして扱えばうまくいってる。

そもそもコード変換できないときの処理として
GNU iconv は-1を返すけど
citrus iconv は 変換できなかった文字数を返す
ってことなんだけど
iconvの仕様として
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/iconv.3.html
これ見ると,変換できない文字数が返るときもあるみたいに読めます。

んで,結局何がいいたいかというと
VIMのサポートしているiconvシステムはGNU LIBICONVしかないのか?
ってこと。

外人にパッチ投げる勇気もないのでここに書いてみました。
#VIMのソース汚すぎ(;_; よく分からん。
0519KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>518
> そもそもコード変換できないときの処理として
> GNU iconv は-1を返すけど
> citrus iconv は 変換できなかった文字数を返す
違うようです。GNU libiconvではマップできない文字(入力エンコードとして不正な
シーケンス)を発見した際に-1を返すのですが、Citrus iconvでは計算アルゴリズムな
どで無理矢理マップした上で非可逆変換した文字数として返しているのでしょう。この
動きはMacのiconv相当APIであるTECと似た動作です。Macの場合はSnifferという入力
シーケンスのエンコードを検証するモジュールがあるので、それを用いてそのような無
理矢理な変換を検出することができます。
# ただしiso-2022-jpについてはこのSnifferが無茶苦茶遅いという問題がありますが。

Vimの抱えている問題点の1つに、エンコードの判定をiconvに頼っていることがありま
す。GNU libiconvの場合はそれでうまく行っていますが、Citrus iconvではそうは行か
ないということでしょう。正確にはPOSIX iconvの定義ではエンコード判定に使えるか
は保証できない、というべきです。これを材料にfencs=guessみたいな仕組みを提案す
ることはできるかもしれません。

しかしCitrusにもまったく問題が無いとは言い切れません。恐らくiso-2022-jp→
euc-jpへの変換などは計算アルゴリズムでガッツリ変換するように実装されているので
はないでしょうか?。だとすると入力エンコードとして不正なシーケンスのチェックは
一切行なっていないことになり、これはCitrusをvim-devでの議論の材料にした際に弱
点になる可能性があります。

Citrusがそのあたり正確にはどうなってるかを調べて、見るべきソースの入手場所、
ファイル名、行数等を教えて貰えないでしょうか?。それがわかればvim-devへ私がメー
ルを投げることができるようになり、もしかしたらCitrusにとってもVimにとっても幸
せなソリューションが生まれるかもしれません。もしも単にVimで漢字コード変換を使
いたいだけなら、Citrusは忘れてGNU libiconvを導入したほうが手っ取り早く幸せにな
れます。
# 余談ですがVimのソースなんて綺麗な方です。
0520518NGNG
KoRoNさんありがとう。勉強になりました。

はじめに言い忘れたけど,僕は単なるユーザーです。
Citrus iconvについて詳しいわけじゃないし,POSIX iconvが
どうなってるか,分かりません。

fencs=guessとかがとっても正しい姿な気がします。
でも自分はとりあえず使えればいいので
どんなところでも使えるGNU libiconvを使えって言われれば,そうするつもりです。

結局,vim-devの人たちを説得するだけのパワーは僕にはありません。

ものすごい独り言でごめんなさい。
0521KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>520
> でも自分はとりあえず使えればいいので
> どんなところでも使えるGNU libiconvを使えって言われれば,そうするつもりです。
残念ですが、そういうことでしたらそのようにしてください。

> 結局,vim-devの人たちを説得するだけのパワーは僕にはありません。
以前より現行のfencsの仕組みはあまりに使い憎いと感じていたものですから、この
件に関しては時間がかかるかもしれませんが材料を整えてなんとかするつもりです。
0522名無しさん@お腹いっぱい。NGNG
>>519
なら、Vimより汚いソースは?
0523名無しさん@お腹いっぱい。NGNG
横の文字数が 70 を超えて書かれている行を見つける(移動 or ハイライトなど)するコマンドを
教えて下さい。
0524KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>523 こんな感じで、詳細は :help /\%c
/\%>70c.\+
0525名無しさん@お腹いっぱい。NGNG
>>524
どうもです。
0526名無しさん@お腹いっぱい。NGNG
>>514
訂正しました.
指摘THX.
0527名無しさん@お腹いっぱい。NGNG
>>524
そのhelpを読んでいて、以下の正規表現が気になったのて調べた。
helpの説明だけを読むと分かり難かったので自分流に解釈。
# 最後を「〜にmatchする」と書いた方が分かり易い…

 foo\(bar\)\@=  直後にbarが有るfooにmatchする
 foo\(bar\)\@!  直後にbarが無いfooにmatchする

 \(bar\)\@<=foo 直前にbarが有るfooにmatchする
 \(bar\)\@<!foo 直前にbarが無いfooにmatchする

foobarfoobafoobarfoo とかをバッファに書いて調べてみると分かる。
0528名無しさん@お腹いっぱい。NGNG
An Eclipse Plugin that adds vi functionality to an existing editor like JDT or CDT.
https://sourceforge.net/projects/viplugin/
0529名無しさん@お腹いっぱい。NGNG
よし、お前ら
今こそ cat ~/.vimrc だ
0530名無しさん@お腹いっぱい。NGNG
~/.exrcはあるけど、~/.vmircはない。
0531名無しさん@お腹いっぱい。NGNG
すみません、gVimで
:set is
で検索後、リターンすると検索ワードがハイライトされると思うのですが、このハイライトを検索前の状態のように
消すことはできますでしょうか?
0532名無しさん@お腹いっぱい。NGNG
>>531
:noh[lsearch] で一時的に消すか、
:set nohls で検索時に必ずhighlightしないようにするか。

前者の場合、再度検索するとまたhighlightされる。
お好みに応じてどうぞ。
0533名無しさん@お腹いっぱい。NGNG

:noh

FAQ の1つですね。
0534名無しさん@お腹いっぱい。NGNG
>>532-533
どうもです。ところでvimのFAQってどこにありますか?
0535名無しさん@お腹いっぱい。NGNG
>534
>2にFAQへのリンクあるぞ。上から4つ目ね。
0536名無しさん@お腹いっぱい。NGNG
スクリプト内で、:set diff? の実行結果を受け取る方法はありますか?
自動でmkviewするようにしてたら、diffモードに入っている状態も
保存されてしまって、不便なのでdiffモードかそうでないか、
判定をしたいのですが。
0537KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>536
:echo &diff
のように&を付けてアクセスします。詳細は:help let-option
0538名無しさん@お腹いっぱい。NGNG
>>537

おぉ、こんなのがあったんですか。
おかげでうまくいったようです。ありがとうございました。
0539名無しさん@お腹いっぱい。NGNG
>>522
ソースが公開されているソフトの中では、vimはかなり汚い
部類といっていいが、世の中の目に触れないコードの世界では、
深い深い闇が広がっている。
0540名無しさん@お腹いっぱい。NGNG
> ソースが公開されているソフトの中では、vimはかなり汚い部類といっていい
日頃、よほどキレイなソースばかり見てるのかな?
一番きれいな部類に入らないのは確かだけど、汚い部類は言い過ぎだと思うな。

スタイルは一応統一されているし、インデントもきちんとしてるし、
コメントもきっちり付いている。
#ifdef が少し煩いくらいで、5段階評価なら3か4は与えていいと思う。
0541名無しさん@お腹いっぱい。NGNG
前スレ>>149

> 140  From:KoRoN@Vim%Chalice◆8XALICEsdk  Date:03/03/07 21:53  Mail:sage
> >>131
> 申し訳ない。重大だなぁと思いつつも、フォローするのすっかり忘れてました。
> 確かに後ろに{{{nな表記があるとおかしなことになりますね。近いうちに調査してみます。

これって今も直ってないようなのですが、その後どうなりましたでしょうか?
0542名無しさん@お腹いっぱい。NGNG
> 140  From:KoRoN@Vim%Chalice◆8XALICEsdk  Date:03/03/07 21:53  Mail:sage
あ,これ140じゃなくて149のタイポです… すいません
0543KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>541
調査はしたんですが、当時は適切な修正方法を提案できませんでした。結局まっつん
さんと相談の上「Bramに預けよう」という結論に至り、3月15日付でvim-devに報告済
みです。以後、進展ありません。
0544名無しさん@お腹いっぱい。NGNG
>>543
そうだったんですか。わざわざありがとうございました。
しかし、このまま忘れられて修正されそうにないですね。
# と言っても単なるユーザな私に修正案を提案できるわけもないですが…

foldをネストしたい時にn表記ができると便利なんだけどなぁ…
0545KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>544
一応、秘密のバグリストに記載してあるので、いつになるか確約はできませんが、ま
とまった時間が取れれば修正できると思われます。
0546名無しさん@お腹いっぱい。NGNG
>>545
お。そんなリストが…(w
では、期待して気長に待つことにします。
0547名無しさん@お腹いっぱい。NGNG
skkim.vimは更新されないのかな…。
0548名無しさん@お腹いっぱい。NGNG
誰かまっつんさんにかわってハックしる!
0549名無しさん@お腹いっぱい。NGNG
言い出しっぺの法則が発動したようです
0550名無しさん@お腹いっぱい。NGNG
テキストをコピーするとき
例えば現在の行から3行分コピーしたいときどーすればいいですか
3ccとかやったらコピーというよりもカットされてしまいます
教えてください

0551名無しさん@お腹いっぱい。NGNG
>>550
y2j
0552名無しさん@お腹いっぱい。NGNG
実際はVでやっちゃう事の方が多いけどね。
0553名無しさん@お腹いっぱい。NGNG
3yyで出来ると思うけど。
550はcの意味を誤解しているような気がするのは俺だけかな。
0554名無しさん@お腹いっぱい。NGNG
>>551
自分は >>553 さんと同じく 3yy 派。
y2j なんていうやり方があるなんて知らなかった。
0555553NGNG
あれ? ヘン?
「d とか y の後は移動コマンド」ってのが基本だと思ってた。
dd とか yy は特例で。
0556555NGNG
スマソ、553 じゃなくて 551 です。
0557KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>550
自分はどちらかというとy2jですが、最短は3Yになるでしょう。
ちなみにcはchangeのcですわ。
0558名無しさん@お腹いっぱい。NGNG
[2003年09月20日(土) AM 08:27 ID:XX9G4ovf]    (::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::\ 
  /::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ:::::::::::::::)
  (::::::::::/  ):::ノ::::ノ ) ソ ヾ::::::::::::丶::::ヽ
 (:::::::::/ 彡  ノ   ノ  :: 彡:/)) ::::::::::)
(::::::::::/彡彡彡彡彡   ミミミミミミミ :::::::::::)
( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::)
 | =ロ   -=・=-  ‖ ‖ -=・=-   ロ===
 |:/ ‖    / /ノ  ヽ \     ‖ ヽ|ヽ 童貞にも人権あるんです!
 |/  ヽ`======/ .⌒ ` ========ノ.   ..| |
.( 。 ・:・‘。c .(●  ●) ;”・u。*@・:、‘)ノ  
( 。;・0”*・o; / :::::l l::: ::: \ :。・;%:・。o )
(; 8@ ・。:// ̄ ̄ ̄ ̄\:\.”・:。;・’0.)  
.\。・:%,: )::::|.  ̄ ̄ ̄ ̄  | ::::(: o`*:c/
 \ ::: o :::::::::\____/  ::::::::::   /
   (ヽ  ヽ:::: _- ::::: ⌒:: :::::::: -_    ノ
    \丶\_::_:::::_:::: :::::_/:::: /
     | \ \ ::::::::::: :::::::::: ::: ::__/|
0559名無しさん@お腹いっぱい。NGNG
2yj
0560名無しさん@お腹いっぱい。NGNG
c - change
d - delete
y - yank
同じ文字2つ(cc dd yy)は行単位ということですな

漏れは map Y y$ しちゃってるので3Yは使えないのだが(w
なんでYだけCやDとデフォルトの挙動が違うんかねぇ?
0561KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>560
論理的に説明すれば、操作の直行性よりも頻繁に使用される機能理が優先された
というところなんでしょうけど、実際はどうなんでしょうね?
0562名無しさん@お腹いっぱい。NGNG
オフィシャルのパッチとkaoriyaのパッチとim_customのパッチ当てると、
vim.h で失敗してしまうのですが、kaoriyaとim_customは同時には当てられないのですか?
0563KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>562
> kaoriyaとim_customは同時には当てられないのですか?
KaoriYaパッチはim_customのことは考えずに作られているため、コンフリクトする可能
性があります。im_customから見たKaoriYaも同様です。なおKaoriYaではim_customを取
り込む予定はありませんので、必要な方は各自でコンフリクトを解消してください。

KaoriYaとim_customの位置づけを考えると、修正が困難なコンフリクトではないと推測
されます。
0564KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>563
補足です。「KaoriYaの方をこう直せばim_customとコンフリクトしないよ」という提案
があれば、こちらで引き上げて考慮させていただきます。
0565名無しさん@お腹いっぱい。NGNG
>>564

レスありがとうございます。
とりあえず、パッチの内容見て試行錯誤してみることにします。
0566KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>565 いきなりパッチ本体を見るんじゃなくて、vim.h.rejができてるはずなんで、そっちを見たほうが良いでしょう。
0567名無しさん@お腹いっぱい。NGNG
   (::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::\ 
  /::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ:::::::::::::::)

  (::::::::::/  ):::ノ::::ノ ) ソ ヾ::::::::::::丶::::ヽ
 (:::::::::/ 彡  ノ   ノ  :: 彡:/)) ::::::::::)
(::::::::::/彡彡彡彡彡   ミミミミミミミ :::::::::::)
( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::)
 | =ロ   -=・=-  ‖ ‖ -=・=-   ロ===
 |:/ ‖    / /ノ  ヽ \     ‖ ヽ|ヽ 童貞共和国に入りませんか?
 |/  ヽ`======/ .⌒ ` ========ノ.   ..| |
.( 。 ・:・‘。c .(●  ●) ;”・u。*@・:、‘)ノ  
( 。;・0”*・o; / :::::l l::: ::: \ :。・;%:・。o )
(; 8@ ・。:// ̄ ̄ ̄ ̄\:\.”・:。;・’0.)  
.\。・:%,: )::::|.  ̄ ̄ ̄ ̄  | ::::(: o`*:c/
 \ ::: o :::::::::\____/  ::::::::::   /
   (ヽ  ヽ:::: _- ::::: ⌒:: :::::::: -_    ノ
    \丶\_::_:::::_:::: :::::_/:::: /
     | \ \ ::::::::::: :::::::::: ::: ::__/|
0568名無しさん@お腹いっぱい。NGNG
みなさん、folddigest.vimでfoldexprに渡す関数を、どんなふうに実装してます?
教えて。
0569名無しさん@お腹いっぱい。NGNG
自分でお好みの色を設定するにはどうすればよいですか?
ヘルプファイル見ながら色々いじってるんだけどうまくいきません。
_gvimrc syncolor.vim my_color.vim の三つのファイルをいじく
りまわしてるんだけど、その他にいじる必要のあるファイルはあり
ますか?

非常に基本的な質問で申し訳ないのだが、
cterm と gui の違いがいまいちわかりません。
usr_06.txt の以下の項目が日本語だけど理解できにゃい。
GUIってグラフィカル・ユーザー・インターフェースで合ってる?
そもそもそれが違うのか。たとえカタカナ読みが合ってたとしても
やっぱり意味はわからないんだが。

term白黒端末の属性
ctermカラー端末の属性
ctermfgカラー端末の文字色
ctermbgカラー端末の背景色
guiGUI版での属性
guifgGUI版での文字色
guibgGUI版での背景色

コロンさん。syntax.txt の翻訳は進んでいますか。
画面が好みの色にカスタマイズできなくてなかなかヴぃmに
移れません。ぐはっ!
0570KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>569
> 自分でお好みの色を設定するにはどうすればよいですか?
colorschemeファイルを作ります。公開して人に使ってもらうものを作るにはやらな
ければならないことも多く面倒ですが、そうでなければ簡単なものです。基本的に弄
る必要があるのは~/.vim/colors/*.vimです。そこに{好みの名前}.vimでファイルを
作成し、その中に論理色を実際の色に結びつけるコマンドを列挙するのです。例:
    highlight Comment guifg=#226622 guibg=#000000
この場合はCommentという論理色に前景色(文字の色)として暗い緑、背景色として黒
が設定できます。どのような論理色を指定できるかは
    :highlight
と、引数なしで実行することで確認できます。

gvimで使う場合にはguifgとguibgだけ設定すれば良いでしょう。コンソール版(vim.exe等)
で使うならばctermfgとctermbgも設定します。term及びguiについては点滅させたり、
前景色と背景色を入替えたりすることができますが、基本的に使う必要はありません。

基本はコレだけです。初めは、既にあるcolorschemeの中から近いものを別名でコ
ピーして、少しずつ好みに合わせて変更していくのが近道です。もっと細かいことに
ついては必要な時にヘルプを読んで覚えて行けばいいのです。なおcolorschemeを書
く際に推奨される慣習については$VIMRUNTIME/colors/README.txtに書いてあります。

なお、現在syntax.txtの翻訳はやってませんし、しばらくやるメドも立ちません。
0571KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>570 補足
とりあえず
    :e $VIM/vimrc
してコメント部分の元の色を確認してから、_gvimrcの最後に
    highlight Comment guifg=#ff0000
とだけ書いて、Vimを再起動し
    :e $VIM/vimrc
でコメントの色がどう変わるかを確認するところから始めるのが良いかもしれませんね。
0572名無しさん@お腹いっぱい。NGNG
>>569
以前同じ質問をKoRoNさんに質問したことがありましたなー。
 Vim6 Part3
 http://pc.2ch.net/unix/kako/1019/10190/1019011083.html
の8-15をどうぞ!
0573572NGNG
# 連続カキコ スマソ

>>569
 どういった環境で使われているのか分からないので、UNIX系OS+X Window System
(以下、"X")と仮定して書きます。

> 非常に基本的な質問で申し訳ないのだが、
> cterm と gui の違いがいまいちわかりません。
 Xを利用していない場合、そして端末エミュレータ(ktermとか)内で動作して
いるvimがterm,ctermです。カラー表示が可能な場合、termではなくctermでの設定が
利用されます。
 一方、guiの方は、X上で独自の(Vim専用の)ウィンドウを開く場合に使われ
ます。

 Windows上で、gvim.exeを実行したときも、独自の(Vim専用の)ウィンドウが表
示されますが、そのときもguiの設定が利用されます。
0574名無しさん@お腹いっぱい。NGNG
>>569
ごく最近、どっかで、vimのカラースキーマの作り方を
解説したサイト見たぞ。
今探したら、即見つかった。http://www.mcl.chem.tohoku.ac.jp/~nakai/env/vim.html
0575名無しさん@お腹いっぱい。NGNG
int
main(int argc, char *argv[])
のような書き方のとき、=でインデントし直すと
  int
main(int argc, char *argv[])
となってしまいますが、intを動かさないようにするにはどうしたらいいでしょうか?
0576名無しさん@お腹いっぱい。NGNG
>>575
cinoptions に t0 を加える。
:help cinoptions-values
0577KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
昔々にMLで流れたネタですが、こんなスクリプトを用意しておくと

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> <F2> :call <SID>HiDiHi()<CR>

<F2>でカーソル下のグループがわかるので、色付けたりsyntax作るときに便利です。
0578名無しさん@お腹いっぱい。NGNG
cw と dw の w の動作が違うな〜っておもったら、vimだけでなくnviでもそうだったんですね〜。
しらなかった。
0579名無しさん@お腹いっぱい。NGNG
>>574
おお、こんなのあんだ。
予約語とか自分独自で作って色ずけしたいんだよなぁ。。
0580名無しさん@お腹いっぱい。NGNG
>>576
thanks
0581名無しさん@お腹いっぱい。NGNG
tabを空白に変換するのはset etしてretabで良いと思うんですが,
複数個の空白を現在のtabstop softtabstop shiftwidthの設定に
基きtabに変換することはできますか?
0582名無しさん@お腹いっぱい。NGNG
>>581
プログラムのコードなら gg=G とかでインデントかけ直せば良い。テキストファイルとかは知らない。
0583名無しさん@お腹いっぱい。NGNG
>>581
retab!
0584名無しさん@お腹いっぱい。NGNG
>550-560
なるほど。「d とか y の後は移動コマンド」の方法だと、
上方向に対しても使えるわけだな。
今まで、カーソル行まで3行コピーとかいう時に、一端上の行に移動してたよ。
0585名無しさん@お腹いっぱい。NGNG
/ とかで移動してもいいし。
0586名無しさん@お腹いっぱい。NGNG
すみません。
vimでファイルの終端に改行を付けないようにするオプションはどうすれば良いのでしょうか。
具体的にはtestとだけ書いたらそれが4バイトになるようにしたいのです
0587KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>586
:set noeol binary
してから:wしてください。特にbinaryオプションには副作用が多いので、不明なことがあれば
:help 'binary'
を確認してください。
0588名無しさん@お腹いっぱい。NGNG
vimを使えるようになりたいんですが、

わかる シリーズみたいに分かりやすい本はないですか。
0589名無しさん@お腹いっぱい。NGNG
>>588
本ではないですが、WinかMacなら↓がgoodです。
ttp://members.jcom.home.ne.jp/advweb/
0590名無しさん@お腹いっぱい。NGNG
vimtutorはもう試したのかな?
0591586NGNG
>>587

:set noeol binaryで出来ました。ありがとうございました。
どのヘルプを読めば良いのかもわからない状態だったので。

とりあえずbinaryの項目を見てきます。
■ このスレッドは過去ログ倉庫に格納されています