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

Vim Part24

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2014/10/12(日) 22:56:29.52
Vim 6以降に関する話題、Part24です。
http://www.vim.org/

前スレ
Vim Part23
http://peace.2ch.net/test/read.cgi/unix/1393376019/

関連情報は>>2-6あたり
0743名無しさん@お腹いっぱい。2015/02/14(土) 10:12:12.48
>>742
わからんけどたぶん歴史的経緯 = viがそうだからだと思う
:h yank や :h linewise あたりを参照

以下usr_04.txtより

> The "yy" command yanks a whole line, just like "dd" deletes a whole line.
> Unexpectedly, while "D" deletes from the cursor to the end of the line, "Y"
> works like "yy", it yanks the whole line. Watch out for this inconsistency!
> Use "y$" to yank to the end of the line.
0744名無しさん@お腹いっぱい。2015/02/14(土) 13:10:52.54
>>742
normal_mode '$' は最終文字に移動するmotion
改行コードはその後にある
0745名無しさん@お腹いっぱい。2015/02/14(土) 13:45:17.08
>>742
あ、Yのことと勘違いしてた
>>743の的外れな回答は無視してくれ
0746名無しさん@お腹いっぱい。2015/02/14(土) 16:15:59.61
Shift + jで行連結してるんですが
10 Shift + jって押すといっきに10行連結されるんですけど
ファイルの最大行数を超えた数字を打つと何も起こりません
これってこういうものですか?
0747名無しさん@お腹いっぱい。2015/02/15(日) 11:10:19.24
はい
0748名無しさん@お腹いっぱい。2015/02/15(日) 11:12:17.59
(確かに[行数より大きな数字]J で :%j と同じになっても良い気がするな…)
0749名無しさん@お腹いっぱい。2015/02/15(日) 13:23:21.84
var a = [
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i'
];

これを範囲選択してShift =をおすと'd'以降のインデントがおかしくなります
なんでですか?
07507492015/02/15(日) 13:40:23.61
filetypeはjavascriptです
0751名無しさん@お腹いっぱい。2015/02/15(日) 21:30:09.51
>>749-750
何を持っておかしいと言ってるのかわからないけど、
こちら(MacVim 7.4 (KaoriYa 20150211))で試した感じでは特に違和感の有る結果にはならなかった。
何かの設定かプラグインが悪さしてるんじゃなかろうか。
vim -u NONE
で試してみたら?
0752名無しさん@お腹いっぱい。2015/02/15(日) 22:08:49.28
なんでというかそういったもんじゃね?
"Debian GNU/Linux 8 (jessie)"
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jun 20 2014 03:40:33)
適用済パッチ: 1-335

vim -u NONE
var a = [
'a',
    'b',
    'c',
    'd',
    'e',
    'f',
    'g',
    'h',
    'i'
    ];

'pangloss/vim-javascript' 適用 //他にもいろいろあったけど目についたので
var a = [
    'a',
    'b',
    'c',
    'd',
    'e',
    'f',
    'g',
    'h',
    'i'
];
0753名無しさん@お腹いっぱい。2015/02/15(日) 22:09:49.07
なんてこったい
07547492015/02/16(月) 10:15:31.95
すいません>>749訂正します無名関数の中に入れた時におかしくなります
vimrcにはfiletype plugin indent onしか書いてない状態でチェックしました
これだと
(function(){
var a = [
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i'
];
}())



'pangloss/vim-javascript'使えば治ったのでvim標準のindentファイルがおかしいのか・・・
0755名無しさん@お腹いっぱい。2015/02/16(月) 12:10:48.67
>>754
vim-jpにIssue登録されました。
https://github.com/vim-jp/issues/issues/701
0756名無しさん@お腹いっぱい。2015/02/16(月) 12:14:57.13
>>755
すごい大先輩ありがとうございます
0757名無しさん@お腹いっぱい。2015/02/16(月) 14:12:08.68
h-east ここ見てるのかよわろた
0758名無しさん@お腹いっぱい。2015/02/16(月) 14:13:09.07
>>755
>1000行のforループを含む2000行の関数です。

そりゃ neovim とかも作りたくなるよね
0759名無しさん@お腹いっぱい。2015/02/16(月) 17:47:41.37
Jってバグの素にならない?
いつのまにか行連結してしまってることがたびたびある

おそらくだけどjjjjjjと移動したあとOするときに
シフトを早く押しすぎるときに起きてる

俺だけなんかな
0760名無しさん@お腹いっぱい。2015/02/16(月) 17:50:09.50
vim はjjjjjjjjjの動きが遅い部類だから
5jとか別のモーション使ってる
0761名無しさん@お腹いっぱい。2015/02/17(火) 11:39:55.88
>>759
たまに意図せず行連結されるときあるけどすぐ気づくから大丈夫
nnoremap J <Nop> とかするほど困ってないな
0762名無しさん@お腹いっぱい。2015/02/18(水) 06:47:41.59
gvim使わないとIMの状態でカーソルの色分けって出来ない?
0763名無しさん@お腹いっぱい。2015/02/18(水) 07:56:33.80
行の背景色とかステータスラインの色替えならできる
07647622015/02/18(水) 19:35:22.48
>>763
サンクス
0765名無しさん@お腹いっぱい。2015/02/18(水) 23:26:47.63
行末移動の$の代わりに-を使いたくて
nnoremap - <Nop>
nmap - $
とすると、単体では上手くいくのですがd-の様に組み合わせると
挙動が変わってきます。どこがマズいのでしょうか
0766名無しさん@お腹いっぱい。2015/02/18(水) 23:59:50.20
移動コマンドとしても追加する必要がある
onoremap - $
を追加すればおk

:help movement
:help omap-info
あたりを参照
0767名無しさん@お腹いっぱい。2015/02/19(木) 00:48:15.23
>>766
有難うございます!!
0768名無しさん@お腹いっぱい。2015/02/19(木) 18:00:35.47
>>763
どうやるのそれ
0769名無しさん@お腹いっぱい。2015/02/19(木) 18:41:22.14
>>768
簡単なのはpowerlineとかそれ系のプラグインを入れる
何種類かあったはず
0770名無しさん@お腹いっぱい。2015/02/19(木) 19:43:44.23
>>769
ありがとう調べてみる
0771名無しさん@お腹いっぱい。2015/02/19(木) 19:45:52.99
今だとairlineかな
フォントにパッチあてんのめんどかったわ
0772名無しさん@お腹いっぱい。2015/02/20(金) 10:06:01.80
issue見てるとmattnはshougoの事が嫌いな感じがするんだけど
0773名無しさん@お腹いっぱい。2015/02/20(金) 10:28:34.00
昔から好きではないオーラ出してるじゃん。
Lingr でも結構辛辣な言葉吐かれてるし。
0774名無しさん@お腹いっぱい。2015/02/20(金) 13:15:26.80
なんでsがまともな事言ってる前提なの?
issueいくつか見たらsが変な事言ってるの分かるでしょ
0775名無しさん@お腹いっぱい。2015/02/20(金) 13:20:42.48
まともかそうか以前に嫌悪感もってるなって話。
0776名無しさん@お腹いっぱい。2015/02/20(金) 13:31:31.22
まともじゃないから嫌悪感をもったって話。
0777名無しさん@お腹いっぱい。2015/02/20(金) 13:41:27.48
こいつShougoじゃね?
0778名無しさん@お腹いっぱい。2015/02/20(金) 13:46:33.00
いや最近issueを見始めた新参
0779名無しさん@お腹いっぱい。2015/02/20(金) 20:04:33.69
NeoBundleとvimprocを入れてるのにNeoBundleUpdateで非同期してくれなくて、アップデート終わるまで何も出来ないんですが
何か設定がいるんでしょうか?
0780名無しさん@お腹いっぱい。2015/02/20(金) 21:33:22.98
twitterでつぶやくと作者が教えてくれるよ
わりとマジで
0781名無しさん@お腹いっぱい。2015/02/20(金) 21:34:40.49
こいつShougoじゃね?
0782名無しさん@お腹いっぱい。2015/02/20(金) 21:39:59.93
そういうときは「貴様まさか!?」って言わんと
0783名無しさん@お腹いっぱい。2015/02/21(土) 09:47:08.36
寒い
0784名無しさん@お腹いっぱい。2015/02/21(土) 11:02:47.28
せやな
0785名無しさん@お腹いっぱい。2015/02/21(土) 11:17:09.55
そろそろnodejsでプラグインかけるようにならんかのう
バインディング出来る機能だけ用意してどの言語からでもスクリプトが書けるような仕組みにならんかのう
0786名無しさん@お腹いっぱい。2015/02/21(土) 12:32:50.16
今日はそんなに寒くないですね
0787名無しさん@お腹いっぱい。2015/02/21(土) 13:24:57.93
>>785

他のエディタはどうなの?
Windows系のエディタは、WSH対応の言語ならOKというエディタが増えてきた。
vbsでもjsでもpyでも同じようにマクロやプラグインを記述できる。

一方、Unix系のエディタでは? Vimって独自文化を突き進むのか。
0788名無しさん@お腹いっぱい。2015/02/21(土) 14:26:01.09
【実況】向かいの部屋に住んでいる女子高生が窓を開けたままオナニーしているんだが
http://hayabusa6.2ch.net/test/read.cgi/network/1387872458/
0789名無しさん@お腹いっぱい。2015/02/21(土) 20:29:34.28
vimscriptからウィンドウを分割して新しいバッファを開いて色々書き込んでnomodifiableにしてナビゲーション的なことをする
みたいなものを妄想してるんですが、初歩的な話かもしれませんがファイル名とは別にバッファ名みたいなものを自由に設定できるんでしょうか?
ファイル名無しの状態でそのバッファを一意に定める情報が欲しいのです。
(:new 適当な名前としてsetlocal nomodifiableすると:wできちゃうのが気になる)
0790名無しさん@お腹いっぱい。2015/02/22(日) 02:36:44.43
Sublime Textのplug-inって流用できないの?
0791名無しさん@お腹いっぱい。2015/02/22(日) 03:15:39.10
>>789
編集、保存を禁止したいなら、setlocal readonly も設定しないとダメだと思う。
0792名無しさん@お腹いっぱい。2015/02/22(日) 03:47:10.63
>>789
ファイルに紐付けないバッファにしたいならこうかな。
setlocal buftype=nofile noswapfile
0793名無しさん@お腹いっぱい。2015/02/22(日) 09:26:15.79
>>791-792
結局:e hogehogeとしてその上でオプション設定するのが正攻法みたいですね
スクリプトから新しいバッファに色々入力した後にsetlocal nomodifiable readonly buftype=nofile noswapfileとしました
buftype=nofile noswapfileがないと終了時に保存の確認が出てしまうことに試してから気付いたのでためになりました
どうもありがとうございました。
0794名無しさん@お腹いっぱい。2015/02/23(月) 00:48:39.27
>>790について誰か教えてください
0795名無しさん@お腹いっぱい。2015/02/23(月) 00:59:24.11
>>794
そのまま使えるかという問いなら使えない
0796名無しさん@お腹いっぱい。2015/02/23(月) 10:41:40.57
20行目でビジュアルモードに入って80行目まで移動してヤンクするとカーソルが10行目に戻ります
逆に80行目でビジュアルモードに入って20行目まで移動してヤンクするとカーソルは20行目のままです
前者の場合は20行目に戻らないようにしたいんですがどうやればいいですか?
とにかくヤンクしたときにカーソルを移動したくないんです
0797名無しさん@お腹いっぱい。2015/02/23(月) 10:42:13.24
訂正
20行目でビジュアルモードに入って80行目まで移動してヤンクするとカーソルが10行目に戻ります

20行目でビジュアルモードに入って80行目まで移動してヤンクするとカーソルが20行目に戻ります
0798名無しさん@お腹いっぱい。2015/02/23(月) 11:50:51.89
>>797
vnoremap y mzy`z
zを潰さない方法ある?
0799名無しさん@お腹いっぱい。2015/02/23(月) 12:39:34.69
>>795
どのようにしたら使えるようになるんでしょうか
緊急なのでできるだけ早く教えていただけると非常にたすかります!
0800名無しさん@お腹いっぱい。2015/02/23(月) 13:55:39.10
>>799
Vim が理解できるように書き直すしかないんじゃね?
つかなにするプラグインなん?同じようなのあるかもよ
0801名無しさん@お腹いっぱい。2015/02/23(月) 15:55:52.08
:tabe *.txt
E77: ファイル名が多過ぎます


カレントディレクトリ内のtxtファイルを一括でタブで開く方法を伝授してください
0802名無しさん@お腹いっぱい。2015/02/23(月) 16:18:54.79
>>801
起動時なら
vim -p --cmd "set tpm=999" *.txt

起動後なら
:set tpm=999
:n &#8226;.txt
:tab all
0803名無しさん@お腹いっぱい。2015/02/23(月) 16:20:20.77
間違えた
:n *.txt
0804名無しさん@お腹いっぱい。2015/02/23(月) 17:41:01.86
ひらけました。ありがとうございます
0805名無しさん@お腹いっぱい。2015/02/24(火) 11:37:45.89
1文字挿入するコマンドって標準ではないのが不便
0806名無しさん@お腹いっぱい。2015/02/24(火) 23:30:47.41
インデントされてる行頭で#を打つと完全に先頭に戻されてしまうんだけどどうやって消すの?
smartindentを使ってると起こるっぽい
0807名無しさん@お腹いっぱい。2015/02/25(水) 06:33:10.56
http://kaworu.jpn.org/vim/NeoBundle
↑この通りにやったんだが、↓のようなエラーが出る。何故?

E117: 未知の関数です: neobundle#begin
行 54:
E492: エディタのコマンドではありません: NeoBundleFetch 'Shougo/neobundle.vim'
行 55:
E117: 未知の関数です: neobundle#end
行 60:
E492: エディタのコマンドではありません: NeoBundle 'Shougo/unite.vim'
0808名無しさん@お腹いっぱい。2015/02/25(水) 08:23:13.73
>>807
ついこの間オレがやってたやつだ

Win環境ならGitBashをコマンドプロンプトでシェルコマンドを使うオプションを有効にしてインストールする
以下は参照サイトのとおりです。
※コマンドプロンプトからいけるようになります
※適宜コマンドを読み替えて入力してください

多分こういうことでしょ?
0809名無しさん@お腹いっぱい。2015/02/25(水) 09:06:04.26
>>808
う、うーん・・そういう事なのか?
環境はlinuxで、
git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
↑これをそのまま打ち込み、100%で完了してファイルは指定の場所に落ちたので、
ここまでは問題ないかと思ったんだが、もはや何故エラーが出るのか皆目検討がつかない。

多分俺にはよくわからない理由でパスが通ってないんだと思うが、
set rtp+=$HOME/.vim/bundle/neobundle.vim/←ここのコマンドとかは何度も凝視したし、
打ち間違えは無いようなのだが・・・。
0810名無しさん@お腹いっぱい。2015/02/25(水) 09:19:36.06
とりあえず本家のREADMEに書かれてるサンプルのままやってみりゃいいよ
追加するプラグインを書くのは" My Bundles here:のところな
0811名無しさん@お腹いっぱい。2015/02/25(水) 09:36:02.71
>>810
実はそれも試し済みなのだが、全く同じエラーが出てダメだった。・・・
0812名無しさん@お腹いっぱい。2015/02/25(水) 10:03:41.88
Vundleでええがな
0813名無しさん@お腹いっぱい。2015/02/25(水) 10:07:41.99
>>811
>>807のエラーを見る限り、neobundle.vimがvimに認識されてないようだけど、なにが原因かよく分からないや。

vimrcの行数がそんなに多くないなら、ここに貼ってみれば。
0814名無しさん@お腹いっぱい。2015/02/25(水) 10:30:16.39
よくわからないが解決した・・・

実はtmuxからvimを開いてたのだが、そこで保存かけようとするとそのような
エラーが出て、ひたすら何時間も唸ってたのだが、ある時その画面はそのままで、
Tmux使わないで.vimrcを開いたら、追加したプラグインを使用しますか?的な英語
メッセージが出て、Yesして結果そのまま使えるようになった。

最初の作業でエラーこそ出たものの、保存はされていたという事だろうか・・?
ただ単に再読み込みすればよかっただけ?
それともTmuxが絡んで変なエラー起こしてたのか。
Tmux上でしか全ての作業を行っていなかったから俺には全く気にする余地が無かったのだが。

すまん、とりあえず原因ははっきりとは分からず解決に至った。
Tmuxはしかし素晴らしいツールだが、256色対応で設定ファイル書いても、
一部だけ色が非256色になっちゃったり(俺だけ?)、他にもバグに遭遇
した事があるので、気をつけて扱っていこうと思う。

皆さんのレスに感謝する!
0815名無しさん@お腹いっぱい。2015/02/25(水) 10:35:17.28
それちゃんとtmuxの設定をしてないだけじゃないのか
0816名無しさん@お腹いっぱい。2015/02/25(水) 11:32:24.72
すごい後出しいただきました
0817名無しさん@お腹いっぱい。2015/02/25(水) 13:23:39.18
エスパー以外はノイズなので書き込まないでください
0818名無しさん@お腹いっぱい。2015/02/25(水) 15:59:47.91
>>806
a#とかを挿入してa消せばええやん
0819名無しさん@お腹いっぱい。2015/02/25(水) 16:47:28.78
ノーマルモード時にoを押したり、インサートモード時にコメント行でreturnキー押すと
次の行もコメント付けてくれるので助かるんですけど、たまにコメント付けてほしくないケースもあるんです
いちいち削除するの面倒くさいんですが、そういうときってどうしたらコメントつかないようにできますか?
0820名無しさん@お腹いっぱい。2015/02/25(水) 17:53:07.53
:se fo-=ro
0821名無しさん@お腹いっぱい。2015/02/25(水) 21:29:00.05
それだと今度はコメントが付かなくなるので困ります
0822名無しさん@お腹いっぱい。2015/02/25(水) 21:33:34.18
>>819
『コメントつけてほしくない時』を機械が判定できるなら可能性だが
0823名無しさん@お腹いっぱい。2015/02/25(水) 21:37:52.59
エスパー以外はノイズなのでエディタを作らないでください
0824名無しさん@お腹いっぱい。2015/02/25(水) 21:48:35.48
>>819
俺はインサートモードのEnterだけコメントつくようにしてる
特に困ってないが
たまにコメント付けて欲しくないケース、ってどういう時よ?
0825名無しさん@お腹いっぱい。2015/02/25(水) 22:09:57.93
emacsみたいに改行+何かをする(しない)キーバインドあるべきなのかもね
0826名無しさん@お腹いっぱい。2015/02/25(水) 22:10:47.95
/**
* ほげほげ[Return]
←この行はコメント付いて欲しい

// こめこめ[Return]
// てすてす[Return]
←この行はコメントアウトせずコードを書きたい

Shift+ReturnとかShift+oみたいな組み合わせでコメントを追従するか市内化出来るものだと思ったんですが
0827名無しさん@お腹いっぱい。2015/02/25(水) 22:12:32.19
とりあえずおしえてもらったので:se fo-=oを設定したら困らなくなったのでこれでOKです
0828名無しさん@お腹いっぱい。2015/02/26(木) 00:22:03.82
オフにしといて
長いコメント書く時は横にだーっと書いて最後にgqqがいいかもね
0829名無しさん@お腹いっぱい。2015/02/26(木) 05:35:26.73
vim-quickrunで、実行して分割されたバッファをさくっと閉じたいんだけど、
ネットをあさって
nnoremap <expr><silent> <C-c> quickrun#is_running() ? quickrun#sweep_sessions() : "\<C-c>"
という一文を設定ファイルに書いてC-c押してみたのだが、
vimを終了するには:quit(enter)と入力して下さい
みたいなのが出るだけで終了できなかった。

考えられる原因教えて下さい
0830名無しさん@お腹いっぱい。2015/02/26(木) 08:39:57.67
>>829
その設定だとquickrun実行中じゃない時は普通に<C-c>が送られてる
:の後で"\<C-c>"のかわりにquickrunのバッファを閉じる関数でも呼んであげればいい
0831名無しさん@お腹いっぱい。2015/02/26(木) 13:51:37.44
>>826
:se com-=://
という手もあるぞ
0832名無しさん@お腹いっぱい。2015/02/26(木) 19:08:21.81
セコム、
0833名無しさん@お腹いっぱい。2015/02/26(木) 19:10:46.12
してますか。
0834名無しさん@お腹いっぱい。2015/02/26(木) 19:14:11.15
してねーよ :-/
0835名無しさん@お腹いっぱい。2015/02/26(木) 19:49:25.29
vimの設定はコンパクトなのはいいが少々暗号すぎるかもなー
0836名無しさん@お腹いっぱい。2015/02/26(木) 19:54:39.42
そういうのがワナビにはたまらんのだと思う
0837名無しさん@お腹いっぱい。2015/02/26(木) 19:57:03.39
vimscriptがクソなだけな気がする
0838名無しさん@お腹いっぱい。2015/02/26(木) 20:14:17.20
省略しないで書けばそこまで暗号でもないんだけどね
設定でも操作でも1文字1タッチでも省こうとするのはvi使いの性みたいなものなのかもしれん
0839名無しさん@お腹いっぱい。2015/02/27(金) 07:10:54.87
>>830
ありがとう。できたわ!
0840名無しさん@お腹いっぱい。2015/02/27(金) 08:06:17.16
連投失礼します。
調べてもちっとも分からんのですが、誰か教えて下さい。
quickrunとopen-blowserというプラグインを使って、
let g:quickrun_config['html'] = { 'command' : 'open', 'exec' : '%c %s', 'outputter': 'browser' }
と設定ファイルに書き込んでhtmlファイルをquickrunしたら、
Couldn't get a file descriptor referring to the console
というエラーが出て表示されなかった。
let g:quickrun_config['html'] = { 'command' : 'cat', 'exec' : '%c %s', 'outputter': 'browser' }
だとちゃんと表示されたのですが、これだとスタイルシート等が読み込まれなくなるとの情報があったので、
openで開きたいんですけど、どうしたら開けますかね?
0841名無しさん@お腹いっぱい。2015/02/27(金) 09:23:40.20
vimgrepしたときに作成されるQuickfixをvimgrepする度に新しいバッファで作成する方法はありますか?
colderでもどるのより簡単な方法がないかと思っています。
0842名無しさん@お腹いっぱい。2015/02/27(金) 10:47:11.30
>>841
:h location-list
■ このスレッドは過去ログ倉庫に格納されています