Vim Part20 ..
[2ch|▼Menu]
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を
表に出すので、どこが処理が変わるんでしょうかねぇ。。。
というわけで、もしわかれば教えてください。

191:名無しさん@お腹いっぱい。
12/02/09 03:01:05.35
スワップしてるとか。

192:名無しさん@お腹いっぱい。
12/02/10 10:43:15.28
邦訳はLearning the vi Editorの7thがないんですね。

悩むなあ。

193:名無しさん@お腹いっぱい。
12/02/10 17:02:23.77
原因がわかりました
foldmethodをmarker
にしていると、ファイルを
読み込んだ直後にmarkerを
探しに行くみたいです

下記で回避できそうです。
またもっといい案があれば
教えてください

au FileReadPre, FilterReadPre ,BufReadPre * set foldmethod=manual
au FileReadPost,FilterReadPost,BufReadPost * if line("$")<=100000 | set foldmethod=marker | endif

よろしくお願いします

194:名無しさん@お腹いっぱい。
12/02/11 08:00:08.27
>>193
手段を選ばないのであれば
:noautocmd edit hoge.txt
あと、
URLリンク(drchip.0sites.net)
これを好きなように改造して使うとか。

195:名無しさん@お腹いっぱい。
12/02/11 12:20:44.94
viにコピペするとき、先頭の文字が何文字か欠けてしまうんだけど何でなの?

version 7.3.390で、set pasteをしてる


196:名無しさん@お腹いっぱい。
12/02/11 12:34:49.49
モドち とか

197:195
12/02/11 13:53:18.16
自己解決、入力モードになっていなかった

198:名無しさん@お腹いっぱい。
12/02/11 15:21:11.94
ある行を yy でヤンクし、ビジュアルセレクトモードで複数行を選択した状態で
p で貼り付けるとレジスタがその選択したものに置き換わってしまうんですが
これを防ぐにはどうしたらいいですか?
>>184を真似て vnoremap p "_p とやってみましたが駄目でした


199:名無しさん@お腹いっぱい。
12/02/11 15:59:12.07
>>198
"0p とか試してみて!

200:198
12/02/11 17:01:41.21
>>199
ありがとうございます
残念ながら同じでした

201:名無しさん@お腹いっぱい。
12/02/11 18:40:02.13
>>198
vnoremap p "_xP

202:198
12/02/12 19:34:31.02
>>201
なるほどー!
xでビジュアルセレクト範囲を"_xへ捨ててから、Pすればいいわけですね。
ありがとうございました。

203:名無しさん@お腹いっぱい。
12/02/12 21:53:36.46
NERD_treeを使ってるときにFuzzyFinderでファイルを開くと、NERD_treeの右側のウインドウが小さくなってしまいますね。。
どなたか原因わかる方、またはNERD_treeとFuzzyFinderがうまく共存できてる方いらっしゃいますか?


204:名無しさん@お腹いっぱい。
12/02/13 10:21:44.00
colorschemeをsolarizedにしたらハマった
V2Cから何から全部これに合わせている
パッと見には印象が弱いが使っていると楽なことに気づく

205:名無しさん@お腹いっぱい。
12/02/13 11:43:06.23
質問です
いくつか行がある中から飛び飛びで切り取って違う所に貼りつけたいんですが良いやり方有りませんか?
例えば
hoge
fuga
hogehoge
fugafuga
のhogeとhogehogeだけ切り取ってfugafugaの下にまとめて貼りたいって感じです

206:名無しさん@お腹いっぱい。
12/02/13 12:30:21.95
vim windows UTF-8版を使っているのですが、やっぱりアラビア語で化けてしまいます。。
wikipedia編集したいのですけど、厳しいっすかねぇ。

207:名無しさん@お腹いっぱい。
12/02/13 12:37:32.77
>>205

末尾に移動
:g/hoge/move $

4行目に移動
:g/hoge/move 4

行頭 fugafuga にマッチする行へ移動
:g/hoge/move /^fugafuga/

208:名無しさん@お腹いっぱい。
12/02/13 12:47:52.50
>>207
返信ありがとうございます。
ちょっと例が悪かったかもしれません。c風で書くなら
main(){
hoge();
printf("hoge");
hogehoge();
printf("hogehoge");
}
hoge(){
}
hogehoge(){
}

main(){
hoge();
hogehoge();
}
hoge(){
printf("hoge");
}
hogehoge(){
printf("hogehoge");
}
みたいな感じなんですが

209:名無しさん@お腹いっぱい。
12/02/13 12:51:52.01
問題が変わった!

210:名無しさん@お腹いっぱい。
12/02/13 13:39:50.69
>>208
/prin
dd
p
dj
jp
j
dd
jp

211:名無しさん@お腹いっぱい。
12/02/13 17:30:47.07
やっぱりまとめてレジスタに入れて適宜入れていくのがよさそうですね
名前付きレジスタでやったりもしたんですがめんどくさすぎて

212:名無しさん@お腹いっぱい。
12/02/13 20:29:51.34
6時間たっても終わってないとか
はよやれw

213:名無しさん@お腹いっぱい。
12/02/13 23:50:28.17
>>208
デバッグ用っぽいね

行頭の printf を削除する
g/^printf/d

関数定義の直後に printf("関数名"); を挿入する。
%s/^\(\w\+\)(){/&\rprintf\("\1"\);\r/

214:名無しさん@お腹いっぱい。
12/02/14 00:12:19.70
>>213
> hoge();
> printf("hoge");
元がこうだから、入れるとしたらいくつあるかわからないreturnの直前だと思うよ。

215:名無しさん@お腹いっぱい。
12/02/14 01:52:53.13
フォント設定が全然昔からできないんだが、
set guifont=Takao_Gothic:h14
とかこういう感じでvimrcに書けば良いんだよね?

216:名無しさん@お腹いっぱい。
12/02/14 02:24:07.74
>>215
OSによって異なる。win,macなら
set guifont=Takaoゴシック:h14
linux(gtk+2)なら
set guifont=Takaoゴシック\ 14

フォント名はGUIに依存するらしいので、よく分からなければ
set guifont=*
で現れる選択ダイアログで選んだ後に
set guifont?
で出てくるフォント名や書式を参考にすればいい

詳細は
:he guifont

217:名無しさん@お腹いっぱい。
12/02/14 02:42:32.10
>>215
gvimrcに書くよ。

218:名無しさん@お腹いっぱい。
12/02/14 04:33:54.78
.vimrcではgvimに反映されないって、余計なお世話仕様だと思う。

219:215
12/02/14 10:39:40.41
>>216
できた。Windowsの方でできた。
なるほど、OSによって表記も異なるのね。WinとLinuxの両方記載しても問題ないんだな。

あとはLinuxの方も仕上げるだけだが、もう安心だ。ありがとう。
もちろんgvimrcの方に書く。

220:名無しさん@お腹いっぱい。
12/02/14 22:00:26.15
>>218
うん、されるよ?

221:名無しさん@お腹いっぱい。
12/02/14 22:26:51.99
>>204 いいね!

222:名無しさん@お腹いっぱい。
12/02/14 23:57:02.83
うちのへぼ液晶だとSolarizedは見づらかったな
低コントラストで目が疲れないのが売りだから当たり前か

223:名無しさん@お腹いっぱい。
12/02/15 01:46:28.74
さぃきん、おしっこするところの近くにもうぶ毛がはえてきました。・゜゜(>_<)゜゜・。
小5のときからまえのほうにははえてきたのですが
こんなとこにもはえてくるのですかぁ(∋_∈)
写メをのせるのでコメントぉくださぃ。。。(〃_ _)σ‖
スレリンク(math板)

224:名無しさん@お腹いっぱい。
12/02/16 15:59:23.73
3日前くらいからvimを使い始めた者ですが、
emacsで言うC-x r tに相当する機能はないですか?


225:名無しさん@お腹いっぱい。
12/02/16 16:08:30.47
矩形選択してShift+i

226:名無しさん@お腹いっぱい。
12/02/18 17:21:47.21
コメントアウトと解除を以下のようにしているんですが、

vmap ; :s/^/#/<CR>
vmap u :s/^#//<CR>

これを使うと検索のワードがそれぞれ ^ と ^# になってしまいます。
元のワードを維持するにはどうすればいいですか?

227:名無しさん@お腹いっぱい。
12/02/19 05:10:04.49
>>226
レジスタ @/ に直近の検索パターンが入ってるから、
vnoremap <silent> ; <Esc>:let sp = @/<Cr> <Bar> :s/^/#/<Cr> <Bar> :let @/ = sp<Cr>
とかかな。
EnhCommentify.vim やら NerdCommenter やら vim-commentary を使えば楽だと思うんだけど。

228:226
12/02/19 22:17:48.36
>>227
ありがとうございます。試してみましたが、残念ながら変わりませんでした。
コメントアウトはプラグインの機能を使うのがベターでしょうかね?

229:名無しさん@お腹いっぱい。
12/02/20 07:20:03.62
>>228
なんでだろ、、、手元ではいけたんだけど。

プラグイン使う方が楽かと。
もし、一個一個 mapping 書いてるなら、山ほど書かないといけないし。

NERDCommenter は、1言語内でコメント切り替え(HTML <-> JavaScript)できたり、コメントパターンも沢山。
vim-commentary は、commentstring をみてるだけ。

URLリンク(github.com)
URLリンク(github.com)

230:名無しさん@お腹いっぱい。
12/02/20 11:01:06.74
Vim で言語に関係なくコメントアウト行う - C++でゲームプログラミング
URLリンク(d.hatena.ne.jp)



231:230
12/02/20 11:03:14.14
[対応している言語]
abaqus abc acedb ada ahdl amiga aml ampl ant apache apachestyle asm68k asm asn
aspvbs atlas autohotkey autoit automake ave awk basic b bc bdf bib bindzone
bst btm caos catalog c cfg cg ch changelog cl clean clipper cmake conf config
context cpp crontab cs csc csp css cterm cupl csv cvs dcl debchangelog
debcontrol debsources def diff django docbk dns dosbatch dosini dot dracula
dsl dtd dtml dylan ecd eiffel elf elmfilt erlang eruby eterm expect exports
fetchmail fgl focexec form fortran foxpro fstab fvwm fx gdb gdmo geek
gentoo-package-keywords' gentoo-package-mask' gentoo-package-use' gnuplot
gtkrc haskell hb h help hercules hog html htmldjango htmlos ia64 icon idlang
idl indent inform inittab ishd iss ist jam java javascript jess jgraph
jproperties jproperties jsp kconfig kix kscript lace lex lftp lifelines lilo
lisp lite lotos lout lprolog lscript lss lua lynx m4 mail make maple masm
master matlab mel mf mib mma model moduala. modula2 modula3 monk mush muttrc
named nasm nastran natural ncf netdict netrw nqc nroff nsis objc ocaml occam
omlet omnimark openroad opl ora otl ox pascal passwd pcap pccts perl pfmain
php phtml pic pike pilrc pine plaintex plm plsql po postscr pov povini ppd
ppwiz procmail progress prolog psf ptcap python python qf radiance ratpoison r
rc readline rebol registry remind rexx robots rpl rtf ruby sa samba sas sass
sather scheme scilab screen scsh sdl sed selectbuf sgml sgmldecl sgmllnx sh
sicad simula sinda skill slang sl slrnrc sm smarty smil smith sml snnsnet
snnspat snnsres snobol4 spec specman spice sql sqlforms sqlj sqr squid st stp
strace svn systemverilog tads taglist tags tak tasm tcl terminfo tex text
plaintex texinfo texmf tf tidy tli trasys tsalt tsscl tssgm uc uil vb verilog
verilog_systemverilog vgrindefs vhdl vim viminfo virata vo_base vrml vsejcl
webmacro wget winbatch wml wvdial xdefaults xf86conf xhtml xkb xmath xml
xmodmap

232:名無しさん@お腹いっぱい。
12/02/20 17:28:21.48
Windowsのgvimで、他のウィンドウからマウスでgvimのウィンドウをアクティブにした時に
クリックした位置にカーソルを移動させない。

なんて設定って出来ますか?

普段はクリックした位置にカーソル移動していいんですけど、他のウィンドウからgvimへ
フォーカス移動した時だけは止めて欲しいという…わかります?

233:名無しさん@お腹いっぱい。
12/02/20 18:08:07.29
>>232
たぶん無理。
マウスを使わず Alt + Tab で。

234:名無しさん@お腹いっぱい。
12/02/20 22:38:00.67
>>232
MacVim だとそうならないからわからんけど、FocusGained でなんとかならん?

235:名無しさん@お腹いっぱい。
12/02/20 22:58:48.79
質問です。

aaa
bbb
ccc



aaa,bbb,ccc

というふうに、改行をカンマ区切りに変えるにはどうしたらいいでしょうか?


236:名無しさん@お腹いっぱい。
12/02/20 23:14:50.75
>>235
"\n"を","に置換するだけ
激しく簡単である

:%s/\n/,/

237:>>235
12/02/22 00:08:35.67
>>236
できませんでした。

ちなみに、jvimというのを使っているのですが、vimとは違うのでしょうか?
OSはFreeBSDです。


238:名無しさん@お腹いっぱい。
12/02/22 02:03:02.76
行末にカンマつけて行結合すれば?

239:名無しさん@お腹いっぱい。
12/02/22 02:19:40.45
>>237
詳しくないけど、jVim てVim 5 相当だったかな。
最新の Vim 7.3 とはかなり違うと思うけど、:%s/\n/,/ も動かないのはよくわからん。

じゃあ、
:%s/$/,/
:%join!
ではどうだ

240:名無しさん@お腹いっぱい。
12/02/22 04:46:29.97
:[range]!tr \\n ,

241:名無しさん@お腹いっぱい。
12/02/22 07:42:45.82
>>240の伝統芸を支持。

242:名無しさん@お腹いっぱい。
12/02/22 08:07:56.41
gvimを初めて使ってみたんだけど
:marksなんかが複数行出力するときに
もたもた出てくるのをなんとかする方法ってありませんか?

243:239
12/02/22 11:16:16.06
FreeBSDだもんな。*nix なら、 >>240 がシブいな
もう、このネタいいと思うけどもう一個

ggqaA,<Esc>gJ100@a$x

244:名無しさん@お腹いっぱい。
12/02/22 11:21:40.78
>>242
-- More -- のことなら、 :set nomore で

245: 忍法帖【Lv=6,xxxP】
12/02/22 12:25:31.53
>>243
マクロとめてなくね?

246:名無しさん@お腹いっぱい。
12/02/22 13:55:28.33
qaJr,q100@a

@aが空っぽ(:let@a='')だったら
qaJr,@aq@a
でOK

247:246
12/02/22 13:56:23.89
最初のgg忘れてた

248:243
12/02/23 02:09:37.71
>>245
ほんまや。。。

249:242
12/02/23 05:49:44.97
>>244
レスありがとうございます
要領を得なくて申し訳ないんですが、:marksとか:registersなんかがまるで
:echo "hoge" | sleep n | echo "fuga" | sleep n |...
ってやってるんじゃないかと思えるほど
見た目にはっきり逐次出力されるじゃないですか。
端末上みたいにぱっと出させたいんです。

250:名無しさん@お腹いっぱい。
12/02/23 15:24:59.00
>>249
うちはズバーン!ってでるよ

251:243
12/02/23 21:51:32.98
>>249
うちもイッキ出しだ。
なんかのオプションて関係あるんだろか。
すまん。ちょっとわからん

252: 忍法帖【Lv=7,xxxP】
12/02/23 22:01:08.08
>>246
マクロって再帰できんの?

253:名無しさん@お腹いっぱい。
12/02/23 22:13:17.62
できるよ

254:名無しさん@お腹いっぱい。
12/02/28 08:08:17.18
Vimって、半角に英字フォントを使いつつ、半角カナを日本語フォントで
表示させるのって無理ですか?

255:名無しさん@お腹いっぱい。
12/02/28 08:38:48.86
半角カナ入り英字フォントってあるの

256:名無しさん@お腹いっぱい。
12/02/28 11:58:40.45
>>254
フォントを合成するとか。

257:名無しさん@お腹いっぱい。
12/03/02 07:15:14.12
:vert diffsplit とか、この前知って感動したんですが、うちのUbuntu 10.04LTS上だと
E319: Sorry, the command is not available in this version ですた。

そういうもんなの?

258:名無しさん@お腹いっぱい。
12/03/02 07:26:43.40
>>257
:ver の結果を確認
-vertsplit か -diff になってるとかでは?
vim-tiny だったらそうかもしらん。
vim-nox やら vim-gnome とかを入れたら使えるんじゃないかね

259:名無しさん@お腹いっぱい。
12/03/02 23:49:29.94
>>254
gvim だよね?
guifontwide は名前通り全角のみなのか。
guifontset でできんかね?
まあ >>256 でできるとは思うが。

260:名無しさん@お腹いっぱい。
12/03/03 12:47:09.99
>>258
-vertsplit ですた。
vim-nox 入れたら使えるようになったよ。ありがとですわ!

261:242
12/03/04 10:10:21.99
>>250>>251
アク禁くらってた。
余所の環境で試す機会があったらまた思い出す事にします
感謝

262:名無しさん@お腹いっぱい。
12/03/07 00:06:50.17
インサートモードで<C-r>=とか<C-r>/とかのコマンドについて
調べたいんですが何て言葉でググればいいんですか?


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

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