Vim Part28

■ このスレッドは過去ログ倉庫に格納されています
2018/05/17(木) 19:18:17.53
Vim 6以降に関する話題、Part28です。
http://www.vim.org/

前スレ
Vim Part25 [転載禁止]?2ch.net
http://peace.2ch.net/test/read.cgi/unix/1427713482/
Vim Part26
http://mevius.2ch.net/test/read.cgi/unix/1455436351/
Vim Part27
http://mevius.5ch.net/test/read.cgi/unix/1507038883/

関連情報は>>2-6あたり
2018/08/01(水) 15:02:44.12
emacsのtramp便利だぞ
2018/08/01(水) 18:51:07.89
Emacs使いは巣にお帰り
2018/08/01(水) 18:54:30.65
いやがっつり文章書くなら素直にmeditやgeany使うわ
vimは設定ファイルの編集やログの閲覧にしか使わんな
大して使い方知らんがview +/で予め文字を検索してから開くのは中々
2018/08/01(水) 20:09:47.26
vimのセッティングに疲れたのでVScodeを使ってみたけど
設定ファイルがJSONで見づらいことこの上なく、速攻アンインスコした
vimrcより使いづらい設定ファイルを持つエディタがこの世にあるとは思わんかった
2018/08/01(水) 21:44:45.57
JSONだから書きづらいならわかるが見づらいってことはないだろ。コメントかけるし。
セクション分けされてないとかそういうところなんじゃないの?
https://code.visualstudio.com/assets/docs/getstarted/settings/hero.png
次バージョンでGUIに改悪もとい改善されるらしいが。
2018/08/01(水) 21:45:33.72
結局、挿入モードでemacsキーバインド使ってたり。spacemacsの方が幸せかも
183名無しさん@お腹いっぱい。
垢版 |
2018/08/02(木) 12:43:44.47
>>182
それなら素直にemacs使った方が幸せかも。
2018/08/02(木) 13:43:00.92
>>183
自分はemacs使っている。
vimから移るのであればspacemacsがいいかもという意味で書いた。
vimも使わなくてはならない時はあるのでviとしては使える。
でもOS自体のキーバインドをemacs-likeにしているので、vimをメインのエディタとしようとは思はないんだよね。
非難受けると思うけど。
185名無しさん@お腹いっぱい。
垢版 |
2018/08/02(木) 15:48:32.17
>>184
良いんじゃない?
2018/08/02(木) 18:51:33.31
>>185
拍子抜けた
2018/08/02(木) 19:02:49.94
Spacemacsは端末やシェルとの協調がなぁ……
「EmacsはOSである」という精神はSpacemacsでも健在のようで,そして俺には受け入れにくい……。
2018/08/02(木) 20:55:42.17
どの辺が受け入れ難いんだろう。
ターミナルが主でないとダメなのかな。
2018/08/03(金) 03:39:13.82
端末がemacsバインドだとしても多用してるのはC-lくらいだな
後vimは設定編集には向くが常用するのはちょっと
バニラでも使えるのは嬉しい誤算だけどな
プラグイン盛らないとろくに使えないエディタとか鼻で笑うわ
2018/08/04(土) 13:23:04.03
Emacsも使ってるけど、もう多機能なアプリケーションくらいにしか思ってない。
それに挿入モード中心の使い方だとVimの長所はほとんど活かせないから、
Vimの愛用者ならもっと違う使い方をしてるんだろうけど。
2018/08/04(土) 13:48:09.40
使いたい人だけ使えば良いよ、何使おうが自由だし
vim板にemacsイラネ、emacも悪くないけどさ
2018/08/04(土) 14:14:46.50
※ここはUNIX板です
2018/08/04(土) 16:26:55.30
だよね、
たまにWindows環境下での書き込みあるよね、
不思議
2018/08/04(土) 17:32:53.70
vimスレってここしかないからだろ
2018/08/04(土) 19:20:47.83
>>194
http://egg.5ch.net/test/read.cgi/software/1421121945/
http://egg.5ch.net/test/read.cgi/mac/1133534694/
2018/08/04(土) 19:27:34.08
スマンw
2018/08/04(土) 22:55:37.49
vimスレは他にもある(活発とは言ってない)
絨毯爆撃してる荒らしに保守されてるとか泣けてくるわ
2018/08/04(土) 23:29:19.79
自作した関数にカレントファイルの名前を渡したいです。
:echo fnamemodify(@%, ":t:r")
とすると望み通りの結果が得られます。
ところが
function! MyFunc(arg)
echo a:arg
endfunction
c​ommand! -nargs=1 MyCmd call MyFunc(<f-args>)
nnoremap <Leader><Space> :<C-u>MyCmd<Space>fnamemodify(@%, ":t:r")<CR>
↑というような定義をvimrcに書いておいて<Leader><Space>を打ち込むと「fnamemodify(@%, ":t:r")」という文字列そのものが
a:argに渡されてしまい,展開されません。
どなたかこの原因が分かるかたいらっしゃいますか。
2018/08/05(日) 01:12:24.34
<expr>
2018/08/05(日) 09:28:36.21
テキストオブジェクトはすげーと思ったけど他のvimの利点って何なの
機能拡張はvimの専売特許じゃないしやっぱり最初から入ってることと軽さ?
必要なキーは多くないけど操作は複雑じゃない訳じゃないし
2018/08/05(日) 09:49:30.35
>>200
あまり深く考えるな
パン食いてーなと思った時に
食パンにするか菓子パンにするかって程度のもんだ
2018/08/05(日) 10:22:02.54
伊達に宗教とは呼ばれてない訳か
色々と難儀だな
2018/08/05(日) 11:52:05.21
>>199
<expr>だとmap全体が展開されてしまうのですが。
2018/08/05(日) 12:30:21.01
>>198
%:r を使うんじゃだめなの?
自分は main.c をコンパイルして実行する (gcc -o main main.c && ./main) のを
:!clear && gcc % -o %:r && ./%:r
みたいにして関数とマッピング作ってるけど
2018/08/05(日) 16:23:13.90
http://i.imgur.com/2jnRbUe.png
set ambiwidth=doubleを有効にしても全角記号が崩れるんだけど直せない?
入力直後はちゃんと●123になるんだけど
vim7.4でヘルプの日本語化しかしてない
2018/08/07(火) 06:27:29.33
>>205
ターミナル側の設定はどうなってる?
2018/08/07(火) 06:50:47.81
ようやくHJKL慣れてきたわ
でも、普段Windows使ってWebブラウザの検索ボックス内でもHJKL押すようになってしまってつらい…
2018/08/07(火) 09:55:56.09
もう少し使い慣れてくるとhjklはろくに使わなくなるよね
209名無しさん@お腹いっぱい。
垢版 |
2018/08/07(火) 12:42:28.11
使うなと言う気はさらさらないが
hl押しっぱだけはアホの極み
2018/08/07(火) 18:12:01.37
esc等のノーマルモードに抜けるコマンドをつい打ってしまうってならまだ分からなくもないけど
検索ボックス(文字入力中=挿入モード)でhjklみたいなノーマルモードのコマンドをつい打ってしまうってのはちょっと有り得ない
最近vimの存在を知ってイキってみたかっただけの嘘松ぽい
2018/08/07(火) 19:16:38.43
なんか無駄に攻撃的だね。どうしたの。
2018/08/07(火) 20:48:14.16
検索ボックスはctrl-wとかalt-bみたいなemacsのキーバインドを使いたくなる(´・ω・`)
2018/08/07(火) 21:03:32.75
まぁinsertモードではhjkl使わんわな
2018/08/08(水) 02:12:09.36
>>205
ターミナル側の設定はどうなってるって訊いてるだろはよ答えろやボケ
おおかた「あいまい文字幅を西洋の方式で解釈する」みたいな設定にしてるんだろうな
せっかく助け船を出してやったのに反応なしとか考えられん
2018/08/08(水) 02:23:27.91
何か気が短い人の率高いな。
それにちょっと検索すれば大方解決しそうな質問だし。
2018/08/08(水) 11:16:09.51
ググって1時間で見つかるようなやつは答えなくていいよ
全部無視しよう
2018/08/08(水) 23:11:48.05
>>209
f F t T w W b B などを使うってこと?

上下の移動は relative number と組み合わせて、10j とかやるけど
左右の移動は、何ワード目か数えるのが面倒で(思考が中断されるので)
hl 連打になってしまう
wb 連打もするけど、大抵行きすぎる
2018/08/08(水) 23:13:57.64
その1時間ってのは自分の経験則かな?
2018/08/10(金) 05:20:34.72
遅レスたけど1時間は適当だよ
2018/08/11(土) 18:33:47.38
1時間ぐぐるってけっこう大変よ
2018/08/11(土) 19:45:49.58
219だけど、俺は解決まで数時間ググることたまにあるけど、みんなそんな簡単に諦めたり人に聞いたりするの?
それともググるのがうまいのだろうか
2018/08/11(土) 23:32:54.86
質問を投げつつ、返答が来るまで自分でもググるのがベスト
2018/08/16(木) 15:53:49.75
そもそも血眼になって調べるのってかなり深刻な場合だよな
一台目のPCが故障して手元に携帯しかないとかそんな状態
コマンドや言語を学習するのにググりまくるのもあるっちゃあるがまず長時間持たん
2018/08/16(木) 22:58:21.18
でもなぜか細かいことは調べたくなっちゃう(なんでappendの反対がeditなのかとか)
2018/08/17(金) 01:13:44.51
先輩方ちょっと教えて下さい。
最近Macを買ったのを機にVim(MacVim-kaoriya版)を使い始めたのですが、
Ctrl-uのキーバインドだけが何故かCtrl-U(大文字)じゃないと受付けてくれません。

自分でも調べて、キーをリマップしようと.vimrcを作り
noremap <C-u> <C-U>
noremap! <C-u> <C-U>
と書いたのですがダメです。Ctrl-Shift-Uじゃないと受付けてくれず。
一緒に書いた
noremap <C-l> <esc>
noremap! <C-l> <esc>
の方は効いてるので.vimrcは読み込んでくれてるようなんですが、、
大文字しか受け付けない原因か、リマップ方法の訂正など教えて頂けると助かります
2018/08/17(金) 01:51:23.62
>>225
あのさ,すぐ上のレスに書いてあることも読めんのか?
ちっとは検索くらいしろ
せめて「これこれこういう語句で検索しましたが欲しい情報が見当たりません」
くらい書けるだろ?


「Mac OS X Vim Ctrl+U 効かない」
で一番上に挙がった候補↓
https://qiita.com/furu8ma/items/7e421da98680d1c4c0f8
二番目↓
https://stackoverflow.com/q/29712392

ことえりの設定を変えるらしいぞ

もう一度いうがググれ。まずは。
2018/08/17(金) 03:47:46.89
>>226
コレですね
Enter2回がどうも慣れずにWindows風の確定になるように変更しました
でも結局Optionを元に戻すしかなくて両立は無理なんですね
2018/08/17(金) 13:11:20.65
そんな血眼ってわけじゃなくて学生だから時間あるんだよ
2018/08/18(土) 14:57:04.71
学生ってこのスレにいんの?
2018/08/18(土) 16:27:54.38
いないと思うの?
2018/08/19(日) 04:36:11.37
ド素人です


対となるカッコの自動挿入をオンにしてるのだが、カッコ内の入力が住んだ後にできるだけ少ない手数でカッコの後ろに出る方法を考えてる

カッコが入れ子であることも考慮すると、挿入ノーマルモードに移行して
・f 適当な文字
・A
・w
で移動するっていうのが普通ですかね?
2018/08/19(日) 05:09:21.39
>>231
俺は最初の方法かな
→int main@

→int main(@)
void<Ctrl+O>f(
→int main(void)@
みたいな編集方式
2018/08/19(日) 23:04:32.58
Vimのステイタスラインに地震情報を出すプラグインがあるけど、VS Codeにもある?
2018/08/20(月) 00:03:31.54
緊急地震速報鳴るんだからそんな余計なプラグイン要らん
2018/08/20(月) 02:24:16.68
VSコードは緊急地震速報付き?
2018/08/20(月) 02:59:06.46
むしろなぜVimに緊急地震速報を出そうと思ったのか
2018/08/20(月) 09:16:54.41
データーセンターだと自分のスマホを持ち込めず自由にネットにアクセスできないし、GUIの入ってないサーバー作業中にもしものことがあってもいいようにかな
2018/08/20(月) 11:07:27.96
>>232
サンキュー
2018/08/20(月) 14:46:21.86
spacevim なんてあるんだな
しかも「spacemacs に触発されて」ときた
正直、流行らんだろ


emacs は lisp の実行環境だから他を寄せ付けない拡張性があって、それに Vim の、これもまた他を寄せ付けない超高速入力を合体させようという試みとして凄い価値のあるプロジェクトなわけだが、spacevim は目的わからん
2018/08/20(月) 19:11:09.82
lispって宇宙人みたいな絵のアレ?
2018/08/20(月) 19:34:44.38
Lots of Irritating Stupid Parentheses の略
tanasinnの元ネタのひとつ
2018/08/22(水) 05:15:25.18
ようやくvimに慣れてきたところだけどプラグイン管理ってどれ入れればいいの
neobundleだかdein.vimだか知らんが設定ファイル自体が煩雑って
バニラ状態で事足りてるから入れなくてもいいか
2018/08/22(水) 07:04:26.66
vim-plug
2018/08/22(水) 08:20:32.16
minpac
245名無しさん@お腹いっぱい。
垢版 |
2018/08/22(水) 10:06:20.49
俺もvim-plug
2018/08/22(水) 11:14:03.53
ぼくもヴィムプラ
2018/08/22(水) 11:23:22.57
minpackですかね
でもvimdoc-jaとiceberg.vimしか入れてないのであんま参考にならんかも
minpackでは入らないプラグインとかあるみたいだし。
2018/08/23(木) 06:31:28.74
ftditectで
「.origの場合は.origではなくその直前の拡張子を本来の拡張子として処理する」
みたいなことできませんかね。
2018/08/23(木) 07:28:22.35
g:ft_ignore_pat
2018/08/23(木) 21:33:26.89
>>249
ありがとうございます。
できそうです。

あと すいません。もう一つ質問なんですが
複数のfiletypeに対して同一のftpluginを実行したい場合、
例えばlexとyaccとcに対してはset cindentを適用するといったようなことはできますか
:help usr_41.txtは読んだのですが あまり助けにならなさそうでした
私が理解していないだけで書いてあるかもしれません。どうかよろしくおねがいします。
2018/08/23(木) 21:56:06.26
>>250
au BufNewFile,BufRead *.{c,lex,yacc} set cindent
とかこんな感じでできないかな
2018/08/23(木) 22:19:26.71
>>251
わがままでもうしわけないんですが
それだと例えば新たに拡張子.Cをfiletype cと見做すように設定したときに
二重に変更する必要がありますよね
元の*.C→set filetype=cと、その*.C→set cindent
これは予期せぬ不具合を生じる原因になると思うので
できたらfiletypeで判別したいです
なんとなくですが&filetypeを使って場合分けできないかなとか思っています。
2018/08/24(金) 00:33:59.01
>>252
au FileType lex,yacc setl cindent

>>251 からの改良点は
・autocmd イベントに FileType を使うことで拡張子問題に対応 ('filetype' オプションに追従)
・filetype=c では同梱プラグインで cindent が設定されるため自分の vimrc には書かないことに
・ファイルタイプ特有の設定はバッファローカルで設定するべき。よって setl[ocal]

これだけだと lex,yacc ファイルを編集中に手動で :setl ft=txt とかしたときに cindent 設定が残り続けることになるが、問題になることは少ないだろう

余談だが .C はデフォルトでは C++ ファイルとして認識されるようだ
2018/08/24(金) 07:13:51.41
>>249
こんなのがあったのか(´・ω・`)
サンクス
2018/08/24(金) 11:10:41.97
>>254
知ってたわけじゃないけどvim ftdetect gzでググったら一発で見つかった
2018/08/24(金) 17:06:32.28
>>253
大文字のCだからc++であってますよ
257名無しさん@お腹いっぱい。
垢版 |
2018/08/25(土) 22:50:08.95
filetypeがnerdtreeのときのみ以下のキーマップを割り当てたいのですがどうすればよいのやら...
理想: 'R'キーを1回入力するとnerdtreeで定義済みの'R'キーを2回入力したことになる
妥協: '<C-r>'を入力するとnerdtreeで定義済みの'R'キーを2入力したことになる

理想を実現しようと以下のように書いたけど,
E21: Cannot make changes, 'modifiable' is off
と怒られてしまいます...
```
augroup nerdtree_custom
autocmd!
augroup END

autocmd nerdtree_custom filetype nerdtree set modifiable
autocmd nerdtree_custom filetype nerdtree set write
autocmd nerdtree_custom filetype nerdtree nnoremap <buffer> R RR
```
258名無しさん@お腹いっぱい。
垢版 |
2018/08/26(日) 00:44:56.37
>>257
nerdtreeのバッファで R のマップを調べる
:map R
すると
n R *@:call nerdtree#ui_glue#invokeKeyMap("R")<CR>
と表示されるのでこれをコピペして、繰り返し回数を指定:

autocmd nerdtree_custom filetype nerdtree nnoremap <buffer> R 2:call nerdtree#ui_glue#invokeKeyMap("R")<CR>
259名無しさん@お腹いっぱい。
垢版 |
2018/08/26(日) 06:57:39.24
>>258
ちょっとよくないな
これだと 2R とかで E16: Invalid range ってなる
このコマンドの場合は任意の回数指定出来なくても問題なさそうだけど
あと何故かカーソルが下に移動してしまう

単に :call を二回でよかったみたい:

autocmd nerdtree_custom filetype nerdtree nnoremap <buffer> R :call nerdtree#ui_glue#invokeKeyMap('R')<CR>:call nerdtree#ui_glue#invokeKeyMap('R')<CR>
260名無しさん@お腹いっぱい。
垢版 |
2018/08/26(日) 07:00:35.95
>>258
解決策だけでなく,手順までご教授頂き,本当にありがとうございます...
Vimと共に歩んでいきます
261名無しさん@お腹いっぱい。
垢版 |
2018/08/26(日) 07:05:17.61
>>259
おっしゃる通り,今回のコマンドは任意回数指定できなくても問題のないものでしたので,
全然気にしていませんでした...
それでもやはりコマンドが任意回数指定できないのは気になるので,:call を2回呼ぶことにしますね.
2018/08/27(月) 00:11:52.78
>>261
読点が全角カンマだから俺の書き込みかと思ったわ
2018/08/27(月) 02:22:39.85
緊急地震速報をVIMで受信出来るってどこかで読んだのだがどうやるんですか!
2018/08/27(月) 02:23:50.74
このスレで読んだんだった
2018/08/27(月) 08:16:36.80
>>237
今更だけど、そんな環境で勝手にプラグイン入れたり勝手に地震速報の情報を受信するのは問題ないの?
2018/08/27(月) 21:00:44.67
>>263
https://github.com/haya14busa/eew.vim
TODOワロタ
2018/08/27(月) 23:57:52.00
これって地震が起きた後の地震速報であって揺れが到達する前に発せられる緊急地震速報じゃないと思うんだがどう?
2018/08/27(月) 23:59:03.85
緊急地震速報って震度3以上だと思う
2018/08/28(火) 08:45:24.61
ls結果をvimで表示したらファイル名の前後にゴミが入るんだけどどうすれば
[01;35maaa.jpg[0m
[01;35mbbb.jpg[0m
ls *jpg | vim -でこんなのが
2018/08/28(火) 08:49:33.13
lsのオプションで色表示の解除なかったかな?man lsで調べて
2018/08/28(火) 09:02:16.53
>>269
>>270の言う通りlsコマンドに色付けをしない旨のオプションを付ける(GNU lsの場合--color=none)のが最も手っ取り早い。
汎用性を持たせる(manコマンドなどの出力結果でも同様の現象が起こる)にはcol -bxをパイプで噛ませるのがいいと思う。
今 調べてみたら
Ansifiler(http://www.andre-simon.de/doku/ansifilter/en/ansifilter.php)とか
ansi2txt(https://sourceforge.net/projects/ansi2txt/
というのもあるみたい。これはcolコマンドを使う方法が,本来のcolコマンドの目的ではなくその仕様を利用している不安定な方法に対して
まさにその目的(ANSI色制御綴りを除去する)ことに特化していることが利点だな。
ただし両方とも野良ビルドする必要があるが……。
2018/08/28(火) 09:05:33.76
>>269
lsの結果に色付いてると思うけどそのカラー設定が混ざってる
$ type lsをやって「ls は `ls --color' のエイリアスです」になるはず
alias ls='ls --color'の記述が~/.bashrcになくても/etc/bash.bashrcにあると思う
エイリアスは\で無効にできるから\ls *jpg | vim -なら大丈夫
273名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 09:15:56.51
deopleteを導入したくてtomlファイルに以下を追加したのですが
```
[[plugins]]
repo = 'Shougo/deoplete.nvim'
let g:deoplete#enable_at_startup = 1
```
以下のエラーメッセージが表示されます.
[dein] Invalid toml format: /c/Users/hoge/.vim/dein/userconfig/plugins.toml
[dein] Text.TOML: Illegal toml format at L39:`g:deoplete#enable_at_startup = 1':630.


この書き方のどこがillegalなのでしょうか...
2018/08/28(火) 09:17:42.71
>>269
"ANSI color code(余計な[0m)を削除
command! DeleteAnsi %s/\[[0-9;]*m//g
^[はCtrl+v+ESCで入力ね
275名無しさん@お腹いっぱい。
垢版 |
2018/08/28(火) 11:30:41.72
Vim初心者ですが、ファイルタイプ毎にタブインデントとスペースインデントを変えるってどうやりますか?
調べてもaugroupでスペースの数を変えるのしか出できません

C言語の時には、表示スペース8のタブインデント、Pythonのときには表示スペース4のスペースインデント...といったやつです
2018/08/28(火) 14:14:30.05
>>273
https://qiita.com/minoritea/items/c0de47b8beb813c655d4

[dein.vim] hook の便利な使い方
https://qiita.com/delphinus/items/cd221a450fd23506e81a

この辺に目を通すといいよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況