トップページunix
1001コメント327KB

Vim6+ Part12

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2005/11/26(土) 10:33:23
Vim 6以降に関する話題、Part12です。
http://www.vim.org/

前スレ
http://pc8.2ch.net/test/read.cgi/unix/1110817975/

関連情報は>>2-8あたり。
0352mattn@Vim%Chalice2006/01/25(水) 00:04:22
>>351
ということで SCIM スレより戻ってまいりました。w
0353名無しさん@お腹いっぱい。2006/01/25(水) 00:20:01
vim7 っていつでるのん?
今のバージョンで良いから KoRoN さん windows 版コンパイルしてください><
0354名無しさん@お腹いっぱい。2006/01/25(水) 00:30:21
>>353
なんか文字化けするけど
http://users.skynet.be/antoine.mechelynck/vim/vim-7.0aa-0186.zip
03553342006/01/25(水) 02:23:37
>>335 ってKoRoNさん?(に見えなくもない。コテじゃないけど)

> VS.NET 2005ってもう売られてるんでしたっけ?
ていうかもう2006年w

パッケージは2/3発売みたい
ちなみにMSDN Subscriber Downloadでは既にDownloadできるよん
0356名無しさん@お腹いっぱい。2006/01/25(水) 04:32:37
>>354
うわ、超ありがとー
まだ入れてないけどこれって vim 6.4 と共存出来るのかな
まぁ待避させてとりあえず入れちゃえばいいかぁ
Omni 補完 わくわく
0357名無しさん@お腹いっぱい。2006/01/25(水) 08:49:40
>>354
メッセージとかが化けるのは、EUC-JPのvim.moが使われてるからみたいなので、
lang/ja.sjis を lang/ja にリネームしちゃえば大丈夫。
0358名無しさん@お腹いっぱい。2006/01/25(水) 09:09:13
>>357
ほんとですね。ありがとう。
0359名無しさん@お腹いっぱい。2006/01/26(木) 12:30:05
コマンドラインのコマンドの補完で、大文字/小文字両方を表示させる
オプションは何でしたっけ?
0360名無しさん@お腹いっぱい。2006/01/26(木) 12:48:22
ignorecaseかな
0361名無しさん@お腹いっぱい。2006/01/26(木) 16:01:48
こんなMLがあった。
vim-ruby-devel
http://rubyforge.org/pipermail/vim-ruby-devel/
0362名無しさん@お腹いっぱい。2006/01/27(金) 22:48:12
レジスタを:regで表示されるリストから削除する方法ってありますか?
:let @a=""
としても、"aとして残ってしまいます。
0363名無しさん@お腹いっぱい。2006/01/28(土) 14:43:57
>>362
強引な手としてはviminfoファイルを編集してレジスタ部分を消すとか
vim以外のエディタで編集しないとダメよ
0364名無しさん@お腹いっぱい。2006/01/28(土) 16:59:24
uim+anthyでFreeBSDのportsから入れたgvimを使っています。
初めてINSERTモードに入ったときはctrl+spaceでXIM-INSERTを使えるのですが、
1度抜け出して、2度めに入った時はctrl+spaceを押しても、
スペースが入力されるだけでimが使えなくなります。
その状態でも、名前を付けて保存や検索などの窓では日本語入力ができるので
設定が悪いのだと思っているのですが、なにが必要でしょうか。
$HOME/{.exrc,.vimrc,.gvimrc}を置いていない時も同じです。
0365名無しさん@お腹いっぱい。2006/01/28(土) 17:00:07
ホントだ。ブラックホールレジスタの中身入れても、残ってるね
0366名無しさん@お腹いっぱい。2006/01/28(土) 17:02:25
>>364
uimのバージョンは?
03673662006/01/28(土) 17:08:53
>>364
それと、vimのバージョン(gtk2かgtk1か)とuimのブリッジ
(uim-ximかgtk-immoduleか)を教えてください。
0368名無しさん@お腹いっぱい。2006/01/28(土) 17:43:33
vimのif_rubyにSEGVで落ちるバグがありました。

rubyはスタックの先頭から最後までgcのときに見ます。
スタックの先頭はruby_initが呼ばれたときのスタックの位置に設
定されます。スタックの最後はgcが呼ばれたときのスタックの位置
です。

vimでは最初にruby(rubydo, rubyfile)コマンドが実行されたとき
にruby_initを呼びますが、スタックの深い位置で呼ばれることも
あります。そしてgcが発生したときのスタックの位置がruby_init
で設定されたスタックの先頭よりも浅いときに落ちます。

解決策はvimのmainの中でrubyのスタックの先頭を設定することです。
Init_stackスタックに渡したアドレスがスタックの先頭になります。
Init_stack(&argc);
03693642006/01/28(土) 17:49:33
vim 6.4
gtk-1.2.10_13
uim-ximのバージョン0.4.9.1 です。
0370名無しさん@お腹いっぱい。2006/01/28(土) 18:17:26
>>364
すいません。もう2つだけ。
:se imak?の値
uim-anthyのデフォルトはshift-spaceですが、ctrl-spaceに変えて
いるということですか?
03713642006/01/28(土) 18:45:01
すいませんshift-spaceの間違いでした。
:se imak?は
imactivatekey=
です
03723642006/01/28(土) 19:27:06
set imactivatekye=s-spaceにするとうまく動きました
366さん本当にありがとうございました。
0373名無しさん@お腹いっぱい。2006/01/28(土) 20:21:40
挿入モードの時だけ配列を変更することは可能ですか?
qwertyからdvorakみたいに
0374名無しさん@お腹いっぱい。2006/01/28(土) 20:26:55
>>373
keymapであるかも
03753682006/01/28(土) 20:42:48
>>368のバグの再現方法です。
以下を実行するとSEGVで落ちます。

function F(n)
  if a:n == 1
    ruby 1
  else
    call F(a:n - 1)
  endif
endfunction
call F(10)
ruby GC.start
03763662006/01/28(土) 23:44:56
>>372
何もしていませんがw

gtk1.2 + uim-xim + imak=s-space
の組合せでは、C-^を押したりse imi=2にしたりする
とgvimが固まりまるので注意してください。


さっきまではgtk1.2 + uim-xim + imak= でかなりいい感じに入力
できると思っていたのですが、そうでもないみたいでした。
0377名無しさん@お腹いっぱい。2006/01/29(日) 00:42:20
> gtk1.2 + uim-xim + imak= 
.gvimrcにこんな設定をするとどう?

set imactivatekey=
inoremap <silent> <ESC> <ESC>:set imi=2<CR>
nnoremap / :set ims=2<CR>/
nnoremap ? :set ims=2<CR>?
nnoremap i :set imi=2<CR>i
nnoremap I :set imi=2<CR>I
nnoremap a :set imi=2<CR>a
nnoremap A :set imi=2<CR>A
nnoremap o :set imi=2<CR>o
nnoremap O :set imi=2<CR>O
nnoremap c :set imi=2<CR>c
nnoremap C :set imi=2<CR>C
nnoremap : :set noimc<CR>:
03783662006/01/29(日) 01:10:15
>>377
常にimi=2にする作戦ですね。
挿入モードに移行するキーを全部マップするのは無理ですが、
vim7ではInsertEnterというautocmdがあるのですっきり書けそうですね。

個人的には、IMのモードを記憶してほしくないのでimak=s-spaceに
してanthy-with-viを使う方が好きです。
0379名無しさん@お腹いっぱい。2006/01/29(日) 01:19:16
おいらは文章書く方が多い人だからなー。

gtk2 + uim だと逆に、
> IMのモードを記憶してほしく
ても無理っぽいのが鬱。
0380名無しさん@お腹いっぱい。2006/01/29(日) 01:34:08
>>379
たしかにそれは無理ですね。
uim-gtkはvimから全く制御できませんから。
0381名無しさん@お腹いっぱい。2006/01/29(日) 09:56:21
C++ の iostream などの拡張子なしのファイルを開いたとき
ファイルタイプを C++ だと認識させるいい方法はないでしょうか?
0382名無しさん@お腹いっぱい。2006/01/29(日) 10:38:15
>>381
filetype.vimに条件を書いて、
条件にマッチしていたら、ファイルタイプをセットする。
というのはどうです?
0383名無しさん@お腹いっぱい。2006/01/29(日) 13:29:03
>>381
編集できるファイルなら一番下に
// vim:ft=cpp
0384名無しさん@お腹いっぱい。2006/01/31(火) 02:12:16
gccのC++ヘッダには先頭に"-*- C++ -*-"と書いてあるみたいなので、
こんな感じに~/.vim/filetype.vimを書けば判定できました。
というかautocmdのパターンにディレクトリをふくめられることを
知ってれば、この関数は必要なかったかも…

au BufRead /usr/include/c++/* call <SID>FTcheck_mm()

fun! <SID>FTcheck_mm()
  let n = 1
  while n < 5
    let line = getline(n)
    if line =~ '.*C++.*'
      setf cpp
      return
    endif
    let n = n + 1
  endwhile
  setf nroff
endfun
0385名無しさん@お腹いっぱい。2006/01/31(火) 10:17:32
h:左 j:下
k:上 l:右
なんだから、
H:行の一番左 J:一番下の行
K:一番上の行 L:行の一番右
のほうがよくなくね?
行の連結とかあんまり使わないだろ?
0386名無しさん@お腹いっぱい。2006/01/31(火) 10:50:03
>>385
じゃあそうmapすればいいじゃない。
てめーの基準が絶対でも唯一でもねーよ。
0387名無しさん@お腹いっぱい。2006/01/31(火) 11:54:02
俺はJは一日に30回は使うな。
逆にHMLはぜんぜん使わない。

>>385
そういう提案とかいいと思うよ。同意&採用されるかは別として。
思考が止まってるよりは。
0388名無しさん@お腹いっぱい。2006/01/31(火) 12:50:40
' とか jp106 のキーボードだと使いにくいよね。
0389名無しさん@お腹いっぱい。2006/01/31(火) 20:07:42
HとLはcountと組み合わせると使いでのあるカーソル移動コマンドだよん。
画面をスクロールさせずにぴょんぴょん飛び回れるのは目が楽で重宝なのだ。
0390名無しさん@お腹いっぱい。2006/01/31(火) 20:17:10
だからJとKをそれにしようって話なんだが。
0391名無しさん@お腹いっぱい。2006/01/31(火) 20:41:11
↓ここでnethackerが一言
0392名無しさん@お腹いっぱい。2006/01/31(火) 20:45:36
v
i
m
イヤ〜ン エッチ
0393名無しさん@お腹いっぱい。2006/01/31(火) 21:27:25
ソフ板スレがトホホな展開なんで久しぶりにこっちにきたら
最初に目に入った文字が「イヤ〜ン エッチ」だった
0394名無しさん@お腹いっぱい。2006/01/31(火) 22:18:44
>>390
古いvi使いは指がもうHとLになってしまっているから
デフォルトを動かすのは非難囂々になるのがオチって話。

でも、新しい人はそんなの気にしないでどんどんmapしたらいいんでないかな。
0395名無しさん@お腹いっぱい。2006/01/31(火) 22:54:15
wとW、bとBの違いが分かりません><
0396名無しさん@お腹いっぱい。2006/01/31(火) 23:02:18
>>395 ↓で試してみ?
aaaa bbbb-cccc dddd-eeeee fffff
03973952006/01/31(火) 23:27:28
脳内で文明が開化した。
0398名無しさん@お腹いっぱい。2006/01/31(火) 23:37:38
コーディングはわかるんだが、テキストファイルとかもvimを常用してる人って本当にいるの?
0399名無しさん@お腹いっぱい。2006/01/31(火) 23:41:39
いません。いるという人はきっと嘘をついています。
0400名無しさん@お腹いっぱい。2006/01/31(火) 23:44:33
例えば何を使うの?
0401名無しさん@お腹いっぱい。2006/01/31(火) 23:46:13
原稿用紙とモンブラン
0402名無しさん@お腹いっぱい。2006/01/31(火) 23:50:27
編集後は cat でテキストファイルに流し込む訳か
0403名無しさん@お腹いっぱい。2006/01/31(火) 23:58:08
俺は常用してる>普通のテキスト
とりあえずソフ板のスレはなんか変なことになってるな
そうまで日本語をvimで書かせたくないのか?あの人
0404名無しさん@お腹いっぱい。2006/02/01(水) 00:02:12
おれも常用してる。
でもきっとその理由は、アイコンが多いと邪魔だからだ。
0405名無しさん@お腹いっぱい。2006/02/01(水) 00:09:39
コードでも自然言語でも、編集するなら
キーバインドと操作性に慣れてるエディタを誰だって使いたいだろうと思うけどな。
コード書いてるエディタで文書も書いてます、ってだけの話。

論争したがる人にはそういう視点が抜け落ちやすいような希ガスる。
0406名無しさん@お腹いっぱい。2006/02/01(水) 00:26:39
日本語のdictationをvimでやってみれば、ネックはvimの
操作性よりはIMEの変換だということが分かる。変換は
offにして全部平仮名で入力してから漢字に入力し直す
やりかたでないととてもついていけない。一度入力した
文章のコピペは英語も日本語もかわらない。
0407名無しさん@お腹いっぱい。2006/02/01(水) 00:30:04
俺漏れも。
モード切替のたびにescと漢字キーをいちいち二つ押すのがあまりにも煩雑で耐えられんので
普通のテキストエディタを使ってる。
0408名無しさん@お腹いっぱい。2006/02/01(水) 00:30:35
結論漢直
0409名無しさん@お腹いっぱい。2006/02/01(水) 00:42:29
ExcelやWordの文書は大抵下書きはvimで書いてる。
後で整形(改行、フォント、カラー、罫線等)するのが面倒だけどvim使い慣れてるし、
ExcelやWordだと見た目に意識が言ってしまうから。
ExcelやWordのショートカットキーをあまり知らないってものある。
0410名無しさん@お腹いっぱい。2006/02/01(水) 03:06:58
おもにメーラの外部エディタとして使ってる。
移動にマウスが必要なく、しかも早いというのが大きい。
文章校正で切り貼り移動しまくるので。
後は整形。たまに:se ve=allして<C-V>とrで線引いたりして表書くのに重宝する。
簡単な計算ができるのもいい。IMEはWinのgvimだから特に問題にならないし。
0411名無しさん@お腹いっぱい。2006/02/01(水) 03:23:28
ここで一発文頭の正規表現などを...
存在を忘れるくらい使わなかったけど。

let mx = ''
" 英語文頭
let mx = "[.!?]\\+[])\"']*\\(\\s\\+\\|\\s*\\n\\s*\\)\\zs."
" 日本語文頭
let mx = mx . "\\|[。!?]\\+[])\"']*[ \\t ]*\\n\\=[ \\t ]*\\zs."
" 段落
let mx = mx . '\|\(\_^[ \t ]*\n\)[ \t ]*\zs.'
let mx = mx . '\|.\n\zs\_^\_$'
let mx = mx . '\|\_^\n\ze\_^.'
" ファイル先頭末尾
let mx = mx . '\|\%^'
let mx = mx . '\|\%$'


ついでにバグみっけた
$ vim7.0189 -u NONE
/\n\zs
E315: ml_get: invalid lnum: 2
0412名無しさん@お腹いっぱい。2006/02/01(水) 05:40:41
>>410
おおおー!そんな方法があったとは。
0413名無しさん@お腹いっぱい。2006/02/01(水) 06:31:59
>>410
>たまに:se ve=allして<C-V>とrで線引いたりして表書くのに重宝する。
これについて、ちょっと解説きぼん
04144132006/02/01(水) 06:38:51
と、自己解決した。rで「-」「|」と置き換えるんだな?
0415名無しさん@お腹いっぱい。2006/02/01(水) 11:08:00
ビジュアル選択された領域をクリップボードにこぴぺするにはどうすればできますか?

ツールバーの「コピー」ボタンを押さずに、コマンドのみで完結する方法をお願いします。
0416KoRoN@Vim%Chalice ◆8XALICEsdk 2006/02/01(水) 11:32:31
>>415 "*y

クリップボードは特別なレジスタ * もしくは + にアサインされています。
04174172006/02/01(水) 17:01:33
>>415じゃないけど、ありがd!
0418名無しさん@お腹いっぱい。2006/02/01(水) 17:20:49
>>416
>
> クリップボードは特別なレジスタ * もしくは + にアサインされています。

できやした。thx!
0419名無しさん@お腹いっぱい。2006/02/01(水) 19:59:46
>>384
> autocmdのパターンにディレクトリをふくめられる
そんな手があったのか
0420名無しさん@お腹いっぱい。2006/02/01(水) 22:50:38
>>415
こんなんとかどうよ?
if has('win32')
  vmap <Space>c "+y
  vmap <Space>x "+x
  nmap <Space>v "+gp
endif
0421名無しさん@お腹いっぱい。2006/02/01(水) 23:12:59
インサートモードだと <Space>v 割り当てられないから統一感無いな
どちらかというと imap の方に割り当てたい場合の方が多いし
0422名無しさん@お腹いっぱい。2006/02/01(水) 23:13:07
>>420
素直に
C:\> cd Vim
C:\Vim> copy gvim.exe evim.exe
C:\Vim> evim
とやるのがいいかも。
0423名無しさん@お腹いっぱい。2006/02/01(水) 23:22:45
ここうに板じゃ無かったっけ?
0424名無しさん@お腹いっぱい。2006/02/02(木) 00:16:58
まぁ、ここが本スレ(だよね?)なんでUNIX以外のプラットホームの話題もいいんじゃない?
ソフ板のは出張所っていうか雑談所っていうか、、、そんな感じになってるし
「Winはソフ板から出てくんな」って流れもゴカンベンください
0425名無しさん@お腹いっぱい。2006/02/02(木) 01:19:01
>>410
メーラは?
0426KoRoN@Vim%Chalice ◆8XALICEsdk 2006/02/02(木) 01:21:42
>>149
スゴイ遅いレスで恐縮ですが、とりあえず次から40KB(40960B)に制限することにします。
0427名無しさん@お腹いっぱい。2006/02/02(木) 03:26:54
>>414 そう
>>410 Edmax
04284272006/02/02(木) 03:29:49
ミスったからもう一度。
  >>425 Edmax
0429名無しさん@お腹いっぱい。2006/02/02(木) 23:14:08
>>407
>モード切替のたびにescと漢字キーをいちいち二つ押すのがあまりにも煩雑で耐えられんので
オレは、vim を使っているときに、<esc> も漢字キーも、一切押さない。

MS-IME では、IME の ON/OFF を、<c-o> とか <s-space> に設定できるよ。
canna と同じね。
# IME 2000 だと、「プロパティ」->「全般」->「キー/ローマ字/色の設定」
# の右横にあるアイコン「設定(S)...」。

<esc> は、<c-[> を使えばイイ。
xterm とかだと、inoreab _e <esc> に設定すると楽。

IME で <c-o> を使ったら、vim の <c-o> は無効にした方がイイよ。
nnoremap <c-o> <nop>
vnoremap <c-o> <nop>
inoremap <c-o> <nop>
0430名無しさん@お腹いっぱい。2006/02/03(金) 00:28:11
俺は窓使いの憂鬱で<S-Space>をIMEにしとる。
0431KoRoN@Vim%Chalice ◆8XALICEsdk 2006/02/03(金) 00:39:22
>>429 私の IME ON/OFF はぜか <C-/> です。
0432名無しさん@お腹いっぱい。2006/02/03(金) 01:03:33
雑談はソフ板使ってあげよう
なんかあっち痛々しい雰囲気になっているから
0433名無しさん@お腹いっぱい。2006/02/03(金) 01:07:24
向こうはどっちもどっちな感じだな
0434名無しさん@お腹いっぱい。2006/02/03(金) 01:16:19
コマンドラインでカーソルより前を全消去(d^相当)するのは<C-U>ですが、
カーソルより後を全消去(d$相当)することはできないのでしょうか?
<C-K>なんかで消せたらいいなと思ったのですが。

:h cmdline.txt した範囲ではやり方がわかりませんでした。。。
0435名無しさん@お腹いっぱい。2006/02/03(金) 01:29:20
>>434
<C-F>はだめなんかね?これでいいんならCでもc$でも
0436名無しさん@お腹いっぱい。2006/02/03(金) 01:30:54
コマンドラインでちょっと直したいときにそれは手間だな
0437名無しさん@お腹いっぱい。2006/02/03(金) 02:11:21
>>435
ありがとうございます。
<C-F>は知っていましたが、435を見てこういう手を思い付きました。
ちょっと重いですがそれなりに機能します。

:cnoremap <C-K> <C-F>d$<C-C><C-E>
0438名無しさん@お腹いっぱい。2006/02/03(金) 02:19:15
ちょっとだけ改良

:cnoremap <C-K> <C-F>"_d$<C-C><C-E>
0439名無しさん@お腹いっぱい。2006/02/03(金) 13:37:47
vimのコマンドライン編集は使いにくい。仕方なくemacs風にしよう
と思っても>>434のようにC-kができない。<C-f>は重すぎ、大袈裟
すぎで使いたくない。emacsのviper-modeのようにコマンドライン
で<esc>を押すとノーマルモードに移行してくれると最高なのだが。
0440名無しさん@お腹いっぱい。2006/02/03(金) 13:38:34
さっき見付けた裏技
:set listchars=eol:?
0441名無しさん@お腹いっぱい。2006/02/03(金) 13:41:06
あれ、だめだった。もう一回。
set listchars=tab:>-,trail:-,extends:>,precedes:<,eol:?
U+21B2ね。
04424402006/02/03(金) 13:48:54
ブラウザで書き込んでもだめか。。。

>>439
cmap <C-K> <C-\>estrpart(getcmdline(), 0, getcmdpos()-1)<CR>
0443名無しさん@お腹いっぱい。2006/02/03(金) 14:18:29
>>442
ありがとう。
なんかちらつくけど。
0444名無しさん@お腹いっぱい。2006/02/03(金) 21:37:20
>>442
うぉ!これすごい便利
0445名無しさん@お腹いっぱい。2006/02/03(金) 22:09:36
>>442
これは良いですねー。
ただ、<C-\>をマップしてると動かないのでcnoremapがお勧め。
0446名無しさん@お腹いっぱい。2006/02/04(土) 00:05:08
viで連番を打つことって可能でしょうか?

abc
defg
hi
jklmn



abc1
defg2
hi3
jklmn4

みたいなのを、地道に打つんじゃなくて、楽にやりたいんです。
0447名無しさん@お腹いっぱい。2006/02/04(土) 00:26:17
>>446
1

ってなっているところで
qqyyp<C-a>q
でキーボーマクロ登録
100@q
とかじゃダメ?
0448名無しさん@お腹いっぱい。2006/02/04(土) 00:34:23
FAQですね
0449名無しさん@お腹いっぱい。2006/02/04(土) 00:34:25
キーボードマクロは美しい解ではないかもしれないが、
実に多くの場合で最も実践的な解である。
他の方法を考える間に出来ちゃうからね。こういうの大事。

漏れならawkかな。
:'<,'>!awk '{print $0 NR}'
0450mattn@Vim%Chalice2006/02/04(土) 00:43:36
>>446
:%s/$/\=line(".")

#先頭行から始まる場合だけですよ。
0451mattn@Vim%Chalice2006/02/04(土) 00:47:09
まぁ2行目から始まってても
:'<,'>s/$/\=line(".")-1
ですむんですが…。
0452名無しさん@お腹いっぱい。2006/02/04(土) 00:48:56
>>450
これ行番号になっちゃうね
■ このスレッドは過去ログ倉庫に格納されています