Vim Part20 at UNIX
[2ch|▼Menu]
1:名無しさん@お腹いっぱい。
11/11/25 18:09:23.82
Vim 6以降に関する話題、Part20です。
URLリンク(www.vim.org)

前スレ
Vim Part19
スレリンク(unix板)

関連情報は>>2-8あたり。

2:名無しさん@お腹いっぱい。
11/11/25 18:10:39.33
■ 入手場所関連
- www.vim.org (総合情報・スクリプト・Tips)
URLリンク(www.vim.org)
- ソースコード他
fURLリンク(ftp.vim.org)
-vim-jp >> Vimのユーザと開発者を結ぶコミュニティサイト
URLリンク(vim-jp.org)
- KaoriYa.net (Windows/MacOS Xバイナリ、掲示板)
URLリンク(www.kaoriya.net)
-vim UTF-8日本語版 - fudist
URLリンク(sites.google.com)

■ vimの情報ソース(国内)
- VIM wiki
URLリンク(vimwiki.net)

■ 関連ツール・ライブラリ
- まっつんさん(im_custom他)
URLリンク(hp.vector.co.jp)
- libiconv (ソースコード)
URLリンク(www.gnu.org)
- libiconv (Windowsバイナリ)
URLリンク(www.kaoriya.net)
- ctags (日本語対応版)
URLリンク(hp.vector.co.jp)
- C/Migemo
URLリンク(www.kaoriya.net)
- Vim + im_custom の rpm 作成スクリプト
URLリンク(hp.vector.co.jp)

3:名無しさん@お腹いっぱい。
11/11/25 18:11:25.62
■ 日本語ドキュメント
- 名無しのvim使い
URLリンク(nanasi.jp)
- Vim日本語ドキュメント(ユーザーマニュアル和訳)
URLリンク(vim-jp.org)

■ サポート情報など
- Vi-IMproved.org (IRCの#Vim案内)
URLリンク(www.vi-improved.org)
- Vim Tips Wiki
URLリンク(vim.wikia.com)
- 日本の Vim ユーザのためのハブサイト
URLリンク(vim-users.jp)
- vim_jp
URLリンク(groups.google.com)
- Vim Development
URLリンク(groups.google.com)
- Vim Use
URLリンク(groups.google.com)
- 効率的なテキスト編集の7つの習慣
URLリンク(peace-pipe.blogspot.com)
- Vimの極め方
URLリンク(whileimautomaton.net)

4:名無しさん@お腹いっぱい。
11/11/25 18:15:17.07
■ 過去ログ・関連スレ
vim
- Part1 URLリンク(pc.2ch.net)
- Part2 URLリンク(pc.2ch.net)
- Part3 URLリンク(pc.2ch.net)
- Part4 スレリンク(unix板) (dat落ち)
- Part5 スレリンク(unix板) (dat落ち)
- Part6 スレリンク(unix板) (dat落ち)
- Part7 スレリンク(unix板) (dat落ち)
- Part8 スレリンク(unix板) (dat落ち)
- Part9 スレリンク(unix板) (dat落ち)
- Part10 スレリンク(unix板) (dat落ち)
- Part11 スレリンク(unix板) (dat落ち)
- Part12 スレリンク(unix板) (dat落ち)
- Part13 スレリンク(unix板) (dat落ち)
- Part14 スレリンク(unix板) (dat落ち)
- Part15 スレリンク(unix板) (dat落ち)
- Part16 スレリンク(unix板) (dat落ち)
- Part17 スレリンク(unix板) (dat落ち)
- Part18 スレリンク(unix板) (dat落ち)
- Part19 スレリンク(unix板) (dat落ち)

5:名無しさん@お腹いっぱい。
11/11/25 18:26:19.59
vim @ソフトウェア板
- Part1 スレリンク(software板) (dat落ち)
- Part2 スレリンク(software板) (dat落ち)
- Part3 スレリンク(software板) (dat落ち)
- Part4 スレリンク(software板)

Vim script
- Part1 スレリンク(tech板)

Mac Vim
- Part1? スレリンク(mac板)

Chalice(2ch閲覧プラグイン)
- Part1 URLリンク(pc.2ch.net)
- Part2 URLリンク(pc2.2ch.net)
- Part3 スレリンク(software板) (dat落ち)
- Part4 スレリンク(software板)

vi
- Part1 URLリンク(pc.2ch.net)
- Part2 スレリンク(unix板)

- Viと仲良くする方法
スレリンク(unix板)
- :::viクローン nvi:::
スレリンク(unix板)

6:名無しさん@お腹いっぱい。
11/11/25 18:36:58.26
- 【Firefoxアドオン】Vimperator【Vim】
スレリンク(software板)

■ フレーム系
- テキストエディタをまた〜り語ろう ver.31
スレリンク(software板)
- Vim vs Emacs Part2
スレリンク(tech板)
- 【vi】まだまだ続くバトル【emacs】Build1
スレリンク(prog板)
- 秀丸をUnixに移植しろ!emacs,viはゴミ以下 3
スレリンク(unix板)
- vi撲滅委員会
スレリンク(linux板)

7:名無しさん@お腹いっぱい。
11/11/27 13:52:12.47
初歩的な質問で申し訳ないのですが教えて下さい。
挿入モードで入力しているときに前の行を修正したくなったら、
escキーを押してから移動しますか?
それとも、挿入モードのまま矢印キーで移動しますか?
どちらが正しいのでしょうか。
個人的には、いちいちescキーを押すのは面倒に思うのですが。


8:名無しさん@お腹いっぱい。
11/11/27 14:38:10.61
まずescは押さない。<c-[>でノーマルモードに戻る
あるいはimapでキーを割り当てる
矢印キーは遠いから使いたくない

9:名無しさん@お腹いっぱい。
11/11/27 14:41:18.18
それはVim 6以降に限った話題でないので、>>1さんがスレチと言うておられる。

10:名無しさん@お腹いっぱい。
11/11/27 14:55:49.94
>>7
標準mappingでは、
CTRL-G k
または一時的にノーマルモードに戻るCTRL-Oを使って、
CTRL-O k
ってのがあります。

URLリンク(vim-jp.org)


11:7
11/11/27 14:57:23.02
>>8
ありがとうございます。とても助かりました。
>>9
申し訳ありません。

12:7
11/11/27 15:01:57.13
返信書いている間に>>10さんの書き込みが・・・
>>10さんもありがとうございます。

13:名無しさん@お腹いっぱい。
11/11/27 20:48:39.67
CTRL-Cで戻るのに慣れた

14:名無しさん@お腹いっぱい。
11/11/27 22:45:56.44
自分の場合、iBus通してmozcの設定上で無変換にmozcをONのまま半角英数入力にするように割り当てているのだけれど、
mapコマンドで無変換や変換キーを扱う方法はありますか?

Ctrl-vで打てるかと思ったけど、何も入力されてないみたいだ。termcapとかそっち系?
それともxevとかで無変換押したときに出てくる数字とか打てばなんとかなるとか?

外部のプログラムをかまさないと駄目?出来ればVimの中で完結させたいんだけど。

15:名無しさん@お腹いっぱい。
11/11/28 20:23:52.18
<Leader>ってあるじゃないすか。
使い方は分かるんだけど、なんでこういう特殊なマッピングが用意されてるんでしょう?

let mapleader="▲"
map <Leader>A 〜
map <Leader>B 〜

let mapleader="△"
map <Leader>B 〜
map <Leader>C 〜

みたいに定義しておくと、まとまりごとにマッピングが切り替えられて便利だから、
っていう理由であってますか?

16:名無しさん@お腹いっぱい。
11/11/28 21:12:05.39
>>15
プラグインでデフォルトで割り当てられているキーは<Leader>で始まることが多いから、
インストールしたけどキーマップを考えるのがだるいときに使うものじゃない?

俺はお試しで入れてみたプラグインや使用頻度の低いプラグインは<Leader>を使う
デフォルトキーマップで、頻度の高いプラグインだけ専用のキーにマップし直してる。

>>15みたいな使い方って想像もしていなかったよ。

17:名無しさん@お腹いっぱい。
11/11/29 09:31:02.12
俺は、GUI上とGNU screen上で使うときに<Leader>を切り替えて使えるように分岐を書いてる

18:名無しさん@お腹いっぱい。
11/12/01 09:54:22.78
12月です!

19:名無しさん@お腹いっぱい。
11/12/01 23:05:05.18
vimuiex, popuplistを native Windows対応 + bugfix してみた。
URLリンク(sourceforge.net)
URLリンク(code.google.com)

URLリンク(skydrive.live.com)
の vimuiex.tar.gz

要 change_directory
URLリンク(skydrive.live.com)
の change_directory.tar.gz

コンパイルは付属のbuild.txtを参照。

20:名無しさん@お腹いっぱい。
11/12/07 19:02:52.09
現在開いているバッファのファイルパスをクリップボードにコピーする方法を教えて下さい

21:名無しさん@お腹いっぱい。
11/12/07 20:30:02.52
がんばって考えてみたところ、これでできた。
:let @* = @%

22:名無しさん@お腹いっぱい。
11/12/07 20:48:36.38
>>21
ありがとうございます。

23:名無しさん@お腹いっぱい。
11/12/08 10:07:32.31
パスじゃなくね?

24:名無しさん@お腹いっぱい。
11/12/08 12:44:18.98
なんなの?

25:名無しさん@お腹いっぱい。
11/12/08 13:22:39.32
ファイル名

26:名無しさん@お腹いっぱい。
11/12/08 16:22:54.90
「path」ってのは「通り道」。
当該ファイルにどうやって行きつくかを書いた「/hoge/fuga/moge/file.txt」ってのがパス。
/からどうやって行くかを書いたのが絶対パス。
現在地からどうやって行くかを書いたのが相対パス。

27:名無しさん@お腹いっぱい。
11/12/08 20:04:23.38
勉強になるなあ

28:名無しさん@お腹いっぱい。
11/12/09 00:08:21.11
Example.
パス(通る) + ポート(港)

>>27
中学からやり直せ

29:名無しさん@お腹いっぱい。
11/12/09 02:36:43.07
>>28
paTHportすげぇ。俺持ってねぇ。

30:名無しさん@お腹いっぱい。
11/12/09 04:33:07.73
通り道じゃなくて通るに変えているあたりに何かの意図を感じるんだけど、こういうことかな。

Example.
パス(通過) + ワード(単語)

>>27
中学からやり直せ

31:名無しさん@お腹いっぱい。
11/12/09 05:32:01.93
>>30
え?

32:名無しさん@お腹いっぱい。
11/12/09 05:33:40.88
あぁ、ごめん意図が分かった
passportね

33:名無しさん@お腹いっぱい。
11/12/09 07:34:27.35
オリンパスもね

34:名無しさん@お腹いっぱい。
11/12/09 08:22:52.26
サロンパスもね

35:名無しさん@お腹いっぱい。
11/12/09 10:26:24.24
ケムンパスもね

36:名無しさん@お腹いっぱい。
11/12/10 01:26:47.43
chalice
スレタイに <, > があると <, > のままになる

37:sage
11/12/10 03:53:37.84
void function(int a,int b){
}

void function(int a, int b){
}
というふうに、「,」のあとで空白を自動的に入れたいのですが
何か方法ありますか?


38:名無しさん@お腹いっぱい。
11/12/11 00:56:32.86
>>37
:map inoremap , ,<Space>

ただマッピングしまくると、コマンドヒストリで正規表現直接修正したり
いざコンマだけ入力したくなった時にイライラするハメになる。
自分の環境でしか通用しない変な癖は付けない方がいい。

:let mapleader = ","
inoremap <Leader>, ,<Space>

に設定すればコンマ2回素早く叩いた場合だけスペースを入力するようになる。
でもコンマとスペースを普通に続けて叩くのに比べて劇的な効果があるかは疑問。
よく使うからこそスペースキーはキーボードの特等席にでっかく陣取ってるわけで。

それならむしろコードを書いた後に直すべき箇所だけまるっと置換した方が健全だと思う。
:%s/,\ze[^ ]/, /g

39:38
11/12/11 00:58:58.27
:map inoremap , ,<Space>
じゃなくて
:inoremap , ,<Space>
だったわ。ごめん。

40:名無しさん@お腹いっぱい。
11/12/11 02:18:02.85
>>38
ありがとうございます。
段付け以外の複雑なコード整形は、外部プログラムに任せたほうがよさそうですね。

41:名無しさん@お腹いっぱい。
11/12/11 04:19:54.40
そういう時のためのsmartchr.vim

42:名無しさん@お腹いっぱい。
11/12/11 21:57:38.82
vimfilerに入った時だけ、spaceから始まるmapを全てなくしたいんだけど、(vimfilerではspaceで選択のため)どう書けばいい?

43:名無しさん@お腹いっぱい。
11/12/12 16:21:15.22
>>42

.vimrc内で、

nmap <Space> [Space]
nnoremap [Space] <Nop>

のようにしておき、<Space>としていたマッピングを[Space]に変更する。
そうすると、vimfilerは<Space> -> [Space]のマッピングを置き変えるので、
prefixと被ることはない。

44:名無しさん@お腹いっぱい。
11/12/12 18:30:45.07
sourceとruntimeはどう違うのですか?

45:名無しさん@お腹いっぱい。
11/12/12 18:59:02.13
>>43
ありがとー!!!!!

46:名無しさん@お腹いっぱい。
11/12/15 14:32:09.69
rootとvimrcを共用したいのですが
if $USER != 'root' && $SUDO_USER == ''
と分岐させると起動が0.3秒程遅くなってもたつきます。
共用してる人はどうやっているんですか?


47:名無しさん@お腹いっぱい。
11/12/15 19:23:54.87
$ ln -s $HOME/.vimrc /root/.vimrc
とかじゃないの。

48:名無しさん@お腹いっぱい。
11/12/16 23:23:22.00
j -> d のようにnnoremap リマップすると
jj で d↓ となって2行削除してしまいます
noremap すれば1行削除ですみますが

では この j(d) 入力後の j の扱いのみをdにするremap はどうするんですか?

49:名無しさん@お腹いっぱい。
11/12/16 23:26:26.60
gfを拡張して、環境変数(${ENV}など)を含んだパスに対しても、gfでジャンプできるように
したいですが、下記だとうまく行きません。
どうすればいいか教えてください。
ちなみに、mapを未定義のものにすればうまく行きます。。。。

function! GoFileWithEnv()
try
normal gf
" catch /^Vim:Interrupt$/
catch
let orgfilepath = expand("<cWORD>")
while (orgfilepath =~ "\\${.*}")
let env = matchstr(orgfilepath,"${.\\{-\\}}")
let expandedenv = expand(expand(env))
let orgfilepath = substitute(orgfilepath,env,expandedenv,"")
endwhile
exe "edit ".orgfilepath
endtry
endfunc

nnoremap gf :call GoFileWithEnv()<CR>


50:名無しさん@お腹いっぱい。
11/12/17 00:15:53.72
>>48
onoremapじゃないの
オペレータ保留モード でググるといいよ

51:名無しさん@お腹いっぱい。
11/12/17 17:49:42.40
いま try-catch とかあるのか

>>49
normal! gf
がいいよね

52:49
11/12/17 21:30:10.34
>>51
うわ!
normal!
ってやらないと、どうやってもmapされたコマンドが実行されるのね。
認識不足でした。map系のコマンドのhelpばっかり見ていました。
それで、会社に行ったときに試してみます!

53:名無しさん@お腹いっぱい。
11/12/18 14:43:17.67
>>41
私も、詳しくは無いが。sourceもruntimeも共にexコマンドを読むのは
同じ。唯、runtimeはruntimeパスから読む点が違う。
h source
h runtime
でヘルプを見れば良いのでは。


54:名無しさん@お腹いっぱい。
11/12/18 14:44:52.09
>>44
私も、詳しくは無いが。sourceもruntimeも共にexコマンドを読むのは
同じ。唯、runtimeはruntimeパスから読む点が違う。
h source
h runtime
でヘルプを見れば良いのでは。


55:名無しさん@お腹いっぱい。
11/12/20 17:28:48.08
スペース2個のインデントをバックスペースキー1回で消せる設定ってどうやるんですか?

56:名無しさん@お腹いっぱい。
11/12/20 17:32:17.00
>55
なんでそんなことがしたいの?

57:名無しさん@お腹いっぱい。
11/12/20 19:52:10.47
>>56
slim-vimというプラグインを入れて:set ft=slimしたらそういうふうになって便利だったので
RubyとかJSとかを書くときもそうできるようにしたいと思いました

58:名無しさん@お腹いっぱい。
11/12/20 19:52:47.59
じゃ、その slim-vim を調べろよw

59:名無しさん@お腹いっぱい。
11/12/20 20:50:37.40
>>55
setl sts=2 et

60:名無しさん@お腹いっぱい。
11/12/20 21:13:11.33
かぶるとこだった。

>>56
>>59をみれば何でそんなことがしたいかの動機はわかってもらえてると思いたい。

61:名無しさん@お腹いっぱい。
11/12/20 21:25:56.29
ノーマルモードのスペースとエンターが→と↓に割り当てられてるのはもったいないからリマップしたいんだけど何がオススメ?

62:名無しさん@お腹いっぱい。
11/12/20 21:36:20.95
ファイルタイプが html/markdown などのとき
選択中(visual)の Enter は、br 挿入
Shift + Enter は、br 削除にしている。

vnoremap <buffer> <cr> :s#$#<br />#<cr>:noh<cr>
vnoremap <buffer> <s-cr> :s#<br />##ge<cr>:noh<cr>

63:名無しさん@お腹いっぱい。
11/12/21 00:08:17.41
>>59
できました。ありがとうございます。すごく快適になりました。

ちなみに今まではこのような指定になってました。
set expandtab tabstop=2 shiftwidth=2 softtabstop=0

softtabstopを設定する必要があるんですね。
softtabstopが0の場合はtabstopの指定が反映されるから0にしとけばいいと、どっかで見て書いた覚えがあります。

64:名無しさん@お腹いっぱい。
11/12/23 23:12:43.96
.vim で K 押すと unix は man が起動されて win だと :help になるのって 'keywordprg' の default だったのか。.vim に限らずか。

65:名無しさん@お腹いっぱい。
11/12/23 23:17:54.43
そういえば Insert mode と Command-line mode には undo がないんだよね。あったっけ?
i は気にならないけど c はたまに欲しくなるな。

66:名無しさん@お腹いっぱい。
11/12/24 11:34:24.44
>>65
cmdwinを使えばできない事もない。

67:名無しさん@お腹いっぱい。
11/12/24 15:23:43.80
q:
って、どうやって表示させたかわからないまま閉じる日々をすごしていたよ

68:名無しさん@お腹いっぱい。
11/12/24 16:03:48.93
それは Command-line mode じゃあないからなあ。
結局 command-line window 内の Insert mode で同じ話になるし。
例えば補完時に補完前に戻すとかが面倒かな。

69:名無しさん@お腹いっぱい。
11/12/26 03:40:21.02
>>67
何でこんなに誤爆しやすいとこに置いたのか理解出来ない

70:名無しさん@お腹いっぱい。
11/12/26 12:55:52.25
fやtで移動するとき、行をまたがせる方法ってありますか?


71:名無しさん@お腹いっぱい。
11/12/26 13:16:42.06
>>70
whichwrapでできないから無理かも

72:名無しさん@お腹いっぱい。
11/12/27 07:39:42.08
>>70
*でやれば?

73:名無しさん@お腹いっぱい。
11/12/27 08:06:30.86
えっち

74:70
11/12/27 13:42:06.79
/で代用するのだとちょっと手順がもっさりして気になるんですよね


75:70
11/12/27 16:57:02.98
URLリンク(vim.wikia.com)
これをちょっといじったらうまくいきました
ありがとう


76:名無しさん@お腹いっぱい。
11/12/28 18:50:59.29
挿入モードのときに<C-t>を押すと、その行のインデントを加算することができるようですが、
同じようにインデントを減らすコマンドもありますか?

:imap <C-t>で探してもマッピングされていませんと言われます。どうやって調べればいいのでしょう。

77:名無しさん@お腹いっぱい。
11/12/28 19:19:11.56
そういうときは、
へるぷで、i_CTRL-tを検索するんだよ
だいたい、上か下に、探している項目があるだろう

78:名無しさん@お腹いっぱい。
11/12/29 21:19:15.02
>>76
:h index
でgrepすれば逆引きができる
:h help.txt
を見るとこういうものがあることが分かるようになってる


79:名無しさん@お腹いっぱい。
11/12/31 16:54:10.65
lispで-がiskeywordと見なされないんだけどなぜ?
確かに45が含まれてるしコマンドの方を特別いじってもいないんですが


80:名無しさん@お腹いっぱい。
12/01/01 00:43:55.77
iskeywordとみなされないとは*で検索したとき含まれないということ?

81:名無しさん@お腹いっぱい。
12/01/01 10:32:23.54
>>80
*みたいな単語単位のコマンドを使うときに-で区切ってくれないんです
:set iskeyword?
iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_


82:名無しさん@お腹いっぱい。
12/01/01 22:56:54.90
neocomplcacheにおいて &l:omnifunc が ClangComplete のとき、
neocomplcache#manual_omni_complete() を使用すると SEGVる。

neocomplcache#manual_omni_complete() から
omni_complete.vim の s:source.get_complete_words() 内で
call('ClangComplete', [0, '']) が呼ばれると
g:clang_use_library == 1 のとき ClangComplete() で dllが使用されるとSEGVる。
これは g:neocomplcache_enable_prefetch の値に関係なく起こる。
gdb
Program received signal SIGSEGV, Segmentation fault.
0x004197e3 in ins_compl_next (allow_get_expansion=0, count=1, insert_match=1)
at edit.c:4611
4611 else if (compl_shows_dir == BACKWARD

URLリンク(github.com) (d81ede0)
neocomplcacheで clang_completeを omni補完として使うパッチ
vim7.3.390 + Python 2.6.6 で動作確認。
URLリンク(skydrive.live.com)
clang_complete-clang2.9.patch clang2.9用。
native Windowsでのdllの名前は clang.dll である必要がある。
URLリンク(llvm.org) で動作確認。

clang_complete-clang3.0.patch clang3.0用。
native Windowsでのdllの名前は libclang.dll である必要がある。
URLリンク(llvm.org)
URLリンク(llvm.org)
URLリンク(llvm.org)
で動作確認。native Windowsは要自ビルド。

両方とも cygwin で使用する場合、dllの名前は cygclang.dll である必要がある。
cygwinは ocaml がインストールされていると失敗するので
configureに --enable-bindings=none を付ける。

83:名無しさん@お腹いっぱい。
12/01/01 22:57:49.18
取りあえずの解決策

function! s:keys_to_complete()
if &l:filetype ==# 'vim'
return "\<C-x>\<C-v>\<C-p>"
elseif strlen(&l:omnifunc)
if &l:omnifunc ==# 'ClangComplete'
\ && exists('*neocomplcache#manual_omni_complete')
\ && exists('g:neocomplcache_omni_patterns.' . &l:filetype)
\ && len('g:neocomplcache_omni_patterns.' . &l:filetype)
return neocomplcache#manual_omni_complete()
else
return "\<C-x>\<C-o>\<C-p>"
endif
else
if &l:completefunc =~# '^neocomplcache#'
return "\<C-x>\<C-u>\<C-p>"
else
return "\<C-n>"
endif
endif
endfunction

if s:has_autoload('eskk')
imap <expr> <C-j> !eskk#is_enabled() ? <SID>keys_to_complete() . "\<C-n>" : "\<C-j>"
else
imap <expr> <C-j> <SID>keys_to_complete() . "\<C-n>"
endif


84:名無しさん@お腹いっぱい。
12/01/01 23:17:30.69
× if &l:omnifunc ==# 'ClangComplete'
○ if &l:omnifunc !=# 'ClangComplete'

85:名無しさん@お腹いっぱい。
12/01/02 00:17:30.42
>>77-78
ありがとうございます。参考になりました。

86:名無しさん@お腹いっぱい。
12/01/03 12:28:02.72
:h termcap-cursor-color
によると、xtermではインサートモードのときカーソルの色を
変えられるらしい。うちのckではできなかった。残念。

87:名無しさん@お腹いっぱい。
12/01/03 19:30:29.90
昨日のVim Advent Calendarは欠番になっちゃったな。
正月だと難しいところもあるんだろうな。代打も出なかったようだし。
とにかくあと少しだから頑張ってくれ。

88:名無しさん@お腹いっぱい。
12/01/03 23:57:14.00
ええ?なんだかんだでここの人たちにも見てる人いるんだ

89:名無しさん@お腹いっぱい。
12/01/03 23:58:33.25
え、見るだろ?

90:名無しさん@お腹いっぱい。
12/01/04 08:19:58.42
うう。。。
新しいskk.vim、"skk_external_prog"周りが変更になってる。。。
辞書サーバからの応答が何故文字化けするのか全然分かんなかった。。。

91:名無しさん@お腹いっぱい。
12/01/04 18:30:33.98
Vim scriptスレさっそく落ちとるがな

92:名無しさん@お腹いっぱい。
12/01/06 01:34:23.64
eskk.vim導入して、インサートモードで<C-j>してエンターキー押したら
<80>yS(eskk:filter:
)
と挿入されて困っています。
neocomplcacheも導入済み。
だれか

93:名無しさん@お腹いっぱい。
12/01/06 07:19:14.11
skk.vimを使いなされ。

94:名無しさん@お腹いっぱい。
12/01/06 22:29:55.33
Windowsで
slimv.vim - Superior Lisp Interaction Mode for Vim ("SLIME for Vim")
URLリンク(www.vim.org)
これ試そうとして
Lisp Cabinet
URLリンク(lispcabinet.sourceforge.net)
をインストールしたら環境変数PATHが消えてしまったので注意しよう

95:名無しさん@お腹いっぱい。
12/01/08 22:15:15.30
すいません。
:!start $VIM . '/gvim.exe ' %
みたいなことをやりたいんですが$VIMが展開できません
:echo $VIM
との違いは何だろう?
ご教授願います

96:名無しさん@お腹いっぱい。
12/01/09 00:03:25.24
すいません。事故解決しました。
execute ":!start ". $VIM. "/gvim.exe %"


97:名無しさん@お腹いっぱい。
12/01/09 00:16:23.47
function! Restart()
try
"全て保存してあるとエラーを起こす。それを利用
bmodified
return
catch
" nop.
endtry
" :!start "C:\Program Files\vim73-kaoriya-msvc10_x64j\gvim.exe " %

execute ":!start ". $VIM. "/gvim.exe %"
execute 'qall'
endfunction

restart.vimのオプションで出来そう

98:名無しさん@お腹いっぱい。
12/01/09 00:22:25.64
vimでファイルを開くと、^Mが行末に表示されるファイルがあるのですが、
これは何なのでしょうか?
表示しないようにするには普通どうしますか?


99:名無しさん@お腹いっぱい。
12/01/09 01:11:00.90
^M^

100:名無しさん@お腹いっぱい。
12/01/09 01:39:43.36
>>98
改行コードが化けてるんじゃね
WindowsからUnix系に持ってきたファイルだったりしない?

101:名無しさん@お腹いっぱい。
12/01/09 02:18:53.30
というよりも、改行コードが混在してる場合にそれが起こる
CRLFとLFが混在してる場合に、改行コードはLFだと認識され、CRが可視化され、それが^Mとなる
表示しないようにするには普通改行コードを統一する

102:名無しさん@お腹いっぱい。
12/01/09 12:28:05.46
sed -e 's/\r//'

103:名無しさん@お腹いっぱい。
12/01/09 14:02:42.06
:%s/\\r// とか現場でやるもんじゃないの?w

104:名無しさん@お腹いっぱい。
12/01/09 16:33:20.47
全部手で消してる努力屋さんの素敵な子がいるんだけど

105:名無しさん@お腹いっぱい。
12/01/09 16:41:13.37
スクリプト書いて渡してやれ…

106:名無しさん@お腹いっぱい。
12/01/09 17:00:29.77
新人に勉強させるのは良い事だ
根をあげ始めたあたりで助け舟をだせ

107:名無しさん@お腹いっぱい。
12/01/09 20:46:29.08
>>106
定期的に^Mがまばらにある1000行くらいのファイルをきれいにする仕事を与えよう
そのうちいい方法を見つけるはずだ

108:名無しさん@お腹いっぱい。
12/01/10 03:26:26.63
カーソルの下の文字を取得するにはどうすればいいでしょうか。
getline(".")[col(".")-1]
までマニュアル読んで習得しましたが、日本語がうまく扱えません。

109:名無しさん@お腹いっぱい。
12/01/10 03:45:08.68
matchstr(getline("."), ".", col(".")-1)

110:名無しさん@お腹いっぱい。
12/01/10 04:13:49.75
>>109
できました。
あざっす!

111:名無しさん@お腹いっぱい。
12/01/15 14:00:45.89
マルチバッファで使ってるのですが、片方でhogeを含む行を
全部もう片方のバッファに移動(抽出)する方法はありますでしょうか。

いまは片方に全部移し変えて :g!/hoge/d するという原始的な方法でやってます…

112:名無しさん@お腹いっぱい。
12/01/15 17:37:12.56
Vimの険しい学習曲線をだいぶ登ってきますた
もっと色々身につけたいので、起動毎にTips表示するスクリプトでも入れようと思います
おすすめ教えてください

113:名無しさん@お腹いっぱい。
12/01/15 21:38:31.03
>>111
QuickFixListを使う方法
:grep hoge % | cwindow


使わない方法
:let @a=''
:g/hoge/normal "AY
:new
"ap

114:名無しさん@お腹いっぱい。
12/01/15 23:40:43.13
>>113
aレジスタを初期化する必要はないの?っていうか、マクロと同じレジスタ使うのは大丈夫なの?
やりもせずにすまん

115:名無しさん@お腹いっぱい。
12/01/16 11:34:44.47
>>114
113じゃないが、初期化は最初のletでやってるし、
マクロってのはそもそもレジスタ使うもの。

116:名無しさん@お腹いっぱい。
12/01/16 13:23:57.09
キャァ。見事に見間違えてました///

117:名無しさん@お腹いっぱい。
12/01/19 17:48:38.68
vimrc で 特定の文字列をセルフ定義レジスタにあらかじめ入れといて
起動直後に "aP でペーストしたいんですが無理でしょうか?

118:名無しさん@お腹いっぱい。
12/01/19 18:53:27.98
>>117
let @a='きんたま'

119:名無しさん@お腹いっぱい。
12/01/20 18:25:36.56
>>117
微妙に違うかもしれないけど、
let @a="foo"
new | put =@a
とすればできる。こうすれば起動時にペーストまでできるはず。

120:名無しさん@お腹いっぱい。
12/01/21 03:36:04.10
fuzzy finderのメニュー開いただけでウィンドウの高さが変わっちゃうんだけど、変えないようにする方法ってある?
ウィンドウは<C-W> sでsplitしてる

121:名無しさん@お腹いっぱい。
12/01/21 10:38:25.30
vim7.3.404より
URLリンク(groups.google.com)
src/edit.cの ins_compl_next()が compl_shown_match == NULL のとき
-1 を返すことによって >>82 の SEGVる問題は結果的に回避される。

動作確認
$ git clone URLリンク(github.com)
vimのソースの src/buffer.c を開く。
URLリンク(skydrive.live.com)
clang_complete-clang3.0-vim7.3.404-a065c40.patch
clang_complete-clang2.9-vim7.3.404-a065c40.patch
パッチを当てて
:imap <buffer> <C-j> <Plug>(clang_complete-manual-omni-complete)
:iunmap <c-x><c-o>
:iunmap <buffer> <c-x><c-o>

curbuf->| (|はカーソルの位置)
インサートモードにしてカーソルの位置で <c-x><c-o> すると補完候補が現れる。

だが、neocomplcacheの場合、
上記の位置で <c-j> すると補完候補が現れない。
curbuf->b| (|はカーソルの位置) は正常に補完される。
perlomni では Math::BigInt->| とかはきちんと補完される。

clang_complete 82d2e9f より
g:clang_auto_user_options の値に 'gcc' が含まれていると
b:clang_user_options が自動的に設定されるようになった。
その値はファイルとして保存される。値を変更するにはそのファイルを消さなければ
ならないので注意。上記のパッチを当てることにより、
:call getopts#gcc#getopts(1) とすることによって値を上書きするように変更。
$LC_MESSAGES が C 以外のときでも動作するように変更。

122:名無しさん@お腹いっぱい。
12/01/21 10:41:17.37
>>120
set noea

123:名無しさん@お腹いっぱい。
12/01/21 23:42:28.15
>>122
できた!ありがとう

124: 忍法帖【Lv=2,xxxP】
12/01/22 09:20:17.10
URLリンク(vim-users.jp)
で、コマンドラインウィンドウ使うようにしてたら%s/,/^M/g とかの改行置換が出来なくなってた
^c で下にやってから実行すれば出来るんだけど……
違いはなに?

125:名無しさん@お腹いっぱい。
12/01/22 15:54:19.77
>>124
?できますよ?
変わりに \r でも良いし

126:名無しさん@お腹いっぱい。
12/01/23 11:00:48.20
Kaoriyaのvim73-kaoriya-win64-20120121.zipをインストールしたけど、
$VIM/_vimrcに syntax=off を追加しても起動するとカラフルな画面になってしまいます。
シンタックス機能の抑制の方法、間違ってます?

(vimrcより後に読み込まれるファイルがあるとか何かあるのかな)

127:名無しさん@お腹いっぱい。
12/01/23 13:05:10.76
>>126

おそらく、
syntax off
と書かないとだめ。syntax=offというのは、ちょっと何をやっているのか分かりません。
そのまま書いたらエラーになるはず。

128:名無しさん@お腹いっぱい。
12/01/23 13:59:11.85
syntax off
でもやっぱりだめでした

ちなみに _vimrc(.vimrc)の中身全部はこれです。

set fencs=ucs-bom,iso-2022-jp,cp932,euc-jp,eucjp-ms
set clipboard=unnamed
set nois
set nohlsearch
set laststatus=0
syntax off
au BufEnter * execute ":lcd " . expand("%:p:h")

129:名無しさん@お腹いっぱい。
12/01/23 16:18:20.55
>>128
たしかkaoriya版のシンタックスはgvimrcで設定しないとダメだったはず。


130:名無しさん@お腹いっぱい。
12/01/23 16:35:16.31
>>126
> (vimrcより後に読み込まれるファイルがあるとか何かあるのかな)
:scriptnames

>>129
vimでも?

131:名無しさん@お腹いっぱい。
12/01/23 16:54:25.58
>>128
set syntax=off
でできませんか?

132:名無しさん@お腹いっぱい。
12/01/23 16:56:11.27
kaoriyaさんいわく(スパルタンvimにて)、HappyHackingKeyboard Type-S 英語版がおすすめみたいだけど、皆さんはどんなキーボードを使っていますか?

133:名無しさん@お腹いっぱい。
12/01/23 17:13:13.86
>>131です。
kaoriya版のvim7.3.99の32bitで試したところ、vimrcまたはgvimrcに
syntax off
と記述するとシンタックスハイライトされなくなりました。


134:名無しさん@お腹いっぱい。
12/01/23 18:57:20.31
>>132
Realforce89 をASCII配列にして使ってる。
無変換、変換キーを別途活用しているので、もともとASCII配列のキーボードだと逆に不便に。

135:名無しさん@お腹いっぱい。
12/01/23 19:49:56.74
自宅も職場もずーっとHHKProのUSだったけど、今は自宅ならAppleのワイヤレスUS一択
ちょっと設定弄る必要あるけど、これいいよ

136:名無しさん@お腹いっぱい。
12/01/23 20:26:27.21
hhkbjpです
usとjpを場合によって切り替えるなんて無理です

137:名無しさん@お腹いっぱい。
12/01/23 21:43:32.01
オリジナルの開発者の使ってたキーボードに近いのがベストなんだろうけど、昔の計算機は知らん。

リマップするならJISが大小兼ねるんで、いいのかね。

138:名無しさん@お腹いっぱい。
12/01/23 22:13:12.10
ノートに合わせてレノボのトラベルキーボード

139:名無しさん@お腹いっぱい。
12/01/23 22:34:06.76
128ですが、バージョン的な問題でしょうかね
現時点でダウンロードできるものは WIN32/WIN64の両方とも
set syntax=off, syntax off どちらでも色付きの画面が表示されます。
起動したあとで :set syntax=off または :syntax off どちらでも
モノクロ画面に戻ります。
まぁ バージョンだけの問題なら更新で直ると期待します。

140:名無しさん@お腹いっぱい。
12/01/23 22:44:17.72
:scriptnamesは試したんだろうか。
:verbose :set syntax?とかどうだろか。

141:名無しさん@お腹いっぱい。
12/01/23 23:04:52.32
URLリンク(www.nicovideo.jp)

142:名無しさん@お腹いっぱい。
12/01/23 23:10:02.83
あのさぁ・・・

143:名無しさん@お腹いっぱい。
12/01/24 01:45:48.07
今までjvim3とかnviしか使ってなくて感覚つかめませんでしたわ。

:scriptnames見て驚いたけど、
_vimrc(.vimrc)って 28個のファイル中11番目の実行になってて
ここで変数セットしても上書きされるな〜って感じ。

VIMRUNTIMの下開いたら laststatus=0 が2に上書きされてる。

ユーザーの rc が最後に実行されないのって
こういう仕様なんだろうか。

144:名無しさん@お腹いっぱい。
12/01/24 01:47:50.31
macのキーボードってキーとキーが離れすぎていないか?
アレでまともにタイピング出来るもんなのか?

145:名無しさん@お腹いっぱい。
12/01/24 01:58:13.69
>>144
むしろ俺はあれで vi 覚えたぞ
タッチがちょっと浅いかなとは思うが
別にキーが離れてることに不便は感じないかと

146:名無しさん@お腹いっぱい。
12/01/24 03:28:26.85
>>143
ユーザのrcが読み込まれたことによって、読み込む必要が出てきたファイルではないのか

147:名無しさん@お腹いっぱい。
12/01/24 18:32:12.49
>>137
ADM-3A

148:名無しさん@お腹いっぱい。
12/01/25 12:30:07.50
nnoremap <C-o> :Unite -vertical -winwidth=30 -no-quit outline<CR>

Unite Outlineを縦分割で開くときに、右側に開きたいんですが
どのように指定すればできますか?

149:名無しさん@お腹いっぱい。
12/01/25 15:47:36.33
>>148
:help :botright

150:名無しさん@お腹いっぱい。
12/01/25 16:25:39.11
>>149
どうも

151:名無しさん@お腹いっぱい。
12/01/25 18:21:25.24
HHKがvi(emacsにしろ)に特別向いてるなんてことはないよwww

自由にしなはれ。

152:名無しさん@お腹いっぱい。
12/01/25 18:49:21.19
あえてviに向いているという部分を探すと、エスケープが近いことぐらいかな。
Ctrl+[ になれちゃえばそれもささいな話

153:名無しさん@お腹いっぱい。
12/01/25 19:18:36.06
確かに俺はHHK使ってるせいで^[がいつまで経っても身につかないわ

あとスパルタンVim読んでみた
前半はあえて極論を書いたネタ半分と受け取ったんだけどどうだろう?
後半の思い出話は超おもしろかった

154:名無しさん@お腹いっぱい。
12/01/25 19:29:16.39
おれCtrl-[すら遠く感じるのでCtrl-cになれちゃったんだけど。

155:名無しさん@お腹いっぱい。
12/01/25 20:04:16.19
>>152
単独のカーソルキーが付いてないのもviに向いてる(笑
もちろんLiteはHHKとは認めない

あとはまあ、修飾キーの位置が多分vi使いの好みに近いと思う
どうにでもなるけど、ハード的に最適化されてるに越したことはない

156:名無しさん@お腹いっぱい。
12/01/25 20:17:12.05
>>155
どうせ使わないから無い方が場所とらなくていいけど、
向いていることの理由にはならないと思って書かなかったよ。

157:名無しさん@お腹いっぱい。
12/01/25 23:06:58.94
カーソルが
print "hello, world"
の w にあるとき、hello world を消して
print ""
にするうまい手を教えてください

158:名無しさん@お腹いっぱい。
12/01/25 23:26:21.26
di"

159:名無しさん@お腹いっぱい。
12/01/25 23:27:16.81
もし、文字列を変更したいのなら
ci"

160:157
12/01/25 23:56:46.08
>>158-159
凄まじく便利です。ありがとうございました。

161:名無しさん@お腹いっぱい。
12/01/26 12:21:01.73
テキストオブジェクト知らなくて許されるのは小学生まで

162:名無しさん@お腹いっぱい。
12/01/26 16:45:31.32
定番だが、>>157はsurround.vimも導入すると世界が広がるはず

163:名無しさん@お腹いっぱい。
12/01/27 14:47:00.86
世界がひろがりんぐ

164:名無しさん@お腹いっぱい。
12/01/27 19:20:48.25
ソースコードの整形ルールを変えるにはどうしたら良いでしょうか?

165:名無しさん@お腹いっぱい。
12/01/27 19:47:41.06
1ファイルだけの話なら
ts sw sts et を好みに設定した後 gg=G

数スタイル用意して必要に応じて切り替えたいなら
URLリンク(vim-users.jp)

166:164
12/01/28 02:57:39.26
>>165
ありがとうございます。

私の質問の仕方が悪かったのですが、
端的な言葉で表現できるほどの語彙がない(orz)ので、具体例を示します。

現在、C++を書いていて、

template<class T>
T func( T val ){
return T;
}

を整形すると、

template<class T>
 T func( T val ){
  return val;
 }

となります。これを、

template<class T>
T func( val T )
{
 return T;
}

となるように、Vimの整形ルールを変更したいと思っています。
よろしくお願いいたします。

167:名無しさん@お腹いっぱい。
12/01/28 06:31:27.34
>>166
波括弧'{,}' の開始位置をそういうふうに変えるのはindent等の外部プログラムに頼るしかないと思います。
:help equalprg

それ以外のインデント量の微調整はVim本体のみで可能です。
:help cinoptions

168:名無しさん@お腹いっぱい。
12/01/28 07:30:30.65
整形で構文エラーを入れられたらVim嫌いになりそう

169:名無しさん@お腹いっぱい。
12/01/28 13:41:26.37
>>167
外部でもいいけど 'indentexpr' でもいいんじゃない?

170:名無しさん@お腹いっぱい。
12/01/28 18:25:52.82
>>169
そのオプションを適切に設定して
  T func( T val ){
の行で == したら
  T func( T val )
  {
にできるの??

171:名無しさん@お腹いっぱい。
12/01/28 20:25:29.60
set pathすると
path=.,/usr/include,,

とかになるんだけど
$PATH渡す方法ってどうすんの?

ちなみにzsh。


172:名無しさん@お腹いっぱい。
12/01/28 21:47:18.62
>>170
できないね。インデントの話かと思った。
まあ vim script でやってもいいんじゃないかと思うけど、そんなことはどうでもいいですね。はい。
つか = ってインデントコマンドかと思ってたらフォーマットコマンドだったんだな。

>>171
:se path=$PATH
これだと : が , にならないけど。
でも 'path' と $PATH は意味が違うと思う。

173:名無しさん@お腹いっぱい。
12/01/31 18:56:53.25
現在開いているファイルのファイル名を変更して保存した後、変更後のファイルを開く、
という動作は、:w 変更後.txt で保存させてから、:e 変更後.txt
って感じになるかと思うのですが、1コマンドで行うことって可能ですかね?

174:名無しさん@お腹いっぱい。
12/01/31 19:45:35.58
>>173
:file 変更後.txt

175:名無しさん@お腹いっぱい。
12/01/31 19:58:05.00
:saveas 変更後.txt

176:名無しさん@お腹いっぱい。
12/01/31 20:46:55.42
デジャヴ!?

177:名無しさん@お腹いっぱい。
12/02/01 10:52:13.23
>>174, 175 ありがとうございます。

178:名無しさん@お腹いっぱい。
12/02/02 19:55:38.45
文字列を分解してリストにするにはどうすればいいですか。
文字列にはマルチバイト文字も含まれています。

179:名無しさん@お腹いっぱい。
12/02/02 21:00:16.16
>>178
split( str, '\zs' )
で解決しました^^

180:名無しさん@お腹いっぱい。
12/02/04 13:35:42.33
「x」で削除した文字をキルリングに入れないようにする設定ってありますか?

181:名無しさん@お腹いっぱい。
12/02/04 14:51:50.27
キルリングってなんぞね
適当なレジスタに放り込んじゃえば?

182:名無しさん@お腹いっぱい。
12/02/04 15:10:41.90
>>180
つ ブラックホールレジスタ
:help "_

183:181
12/02/04 15:24:14.57
>>182
/dev/nullみたいなのがちゃんとあるんだと勉強になりました

184:180
12/02/04 17:50:56.99
>>182
:nnoremap x "_x
でできました。ありがとうございました。

185:名無しさん@お腹いっぱい。
12/02/06 23:30:03.86
ワームホールレジスタはどこだったかのう

186:名無しさん@お腹いっぱい。
12/02/07 12:29:13.25
ブラックホールに落ちた変数はイエローホールで脱出できる。
そのときvimは破壊されてしまうだろう。

187:名無しさん@お腹いっぱい。
12/02/08 12:58:56.42
もし回避方法があれば教えてください。
hiddenオプションはONにした状態で、
巨大なテキストファイル(大体数100Mbyte)を開くと、
最初当然時間はかかりますが、開いた後に、たとえば
別のファイルを開き、そのあと、また、元のファイルに戻ると
結構時間がかかります。この時間がかからなくすることは可能でしょうか?
例としては、下記の感じです
>vim
:e a.txt(数100Mbyteのファイル。当然読み込みに時間がかかる)
:e b.txt(小さなファイル。一瞬で読み込み終了)
:b1(もとの、a.txtを再度開きたい。このとき、最初のe a.txtほどではないが、
数十秒時間がかかるのを回避したい)

よろしくお願いします。

188:名無しさん@お腹いっぱい。
12/02/08 22:17:03.29
>>187
:sp

189:名無しさん@お腹いっぱい。
12/02/08 22:51:45.67
単純に100MBのファイル作って試してみても遅くはならないからシンタックスとかプラグインとかじゃないの。
vim -u NONE で設定等無効化しても遅い?

190:名無しさん@お腹いっぱい。
12/02/08 23:37:21.75
:sp
を使えば、遅くならないのはわかっているんですが、つい、
:b を使ってしまって、裏に移動したときに戻ってくるのが遅いなぁと。

今、自宅のwindowsで-u NONEで実行してみましたが、数秒かかりますね<復帰
ただ、会社のsolarisで実行すると、NFSのためか、数百MByteあると、
復帰に数十秒かかります。
そもそもバッファにあるんだから表示だけの問題じゃないのかなぁと
思うんですが。。。

:spをしておいて、currentをwindowを切り替えるのと、:b1とかでbufferを
表に出すので、どこが処理が変わるんでしょうかねぇ。。。
というわけで、もしわかれば教えてください。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4978日前に更新/132 KB
担当:undef