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/09/12(水) 13:19:34.89
これ実践Vimの続きじゃねーの

内容は少ししか増えてないってどっかで読んだ気が
2018/09/12(水) 13:22:43.00
は?出版社ちがうじゃんって思ったが実践Vimと同じ人が書いてるのか
実践Vimも読んだことない
再販してほしいんだが
2018/09/12(水) 14:35:12.79
前回の本は素vimをどう使うかの本で、新しいのはプラグインも含めたカスタマイズの本みたいね
実践vimは結構売れたみたいなのになんで絶版になったんや(´・ω・`)
2018/09/12(水) 14:52:11.57
出版社が無くなったからかな?
アスキーと角川の合弁会社?
電子書籍はまだ売ってるのに紙の本はなんで絶版なんだろ
2018/09/12(水) 15:48:51.93
電子版もあるし英語版第二版も出てるしvimもバージョンアップするしで在庫リスクを取りたくないんじゃね?
407名無しさん@お腹いっぱい。
垢版 |
2018/09/12(水) 18:20:14.86
>>397
fbterm 使わなくても :syntax on で色は付くと思うけど
環境変数 TERM が dumb とかだと白黒になるね

fbterm上で256色を扱うには、TERM 環境変数を "fbterm" にする必要がある

$ TERM=fbterm vim

man fbterm の 256 COLOR EXTENSION 参照
シェルの初期化ファイル(~/.bashrc とか)にこういうのを書いておけば毎回指定しなくて済む

if ps "${PPID}" | grep -q fbterm; then
export TERM=fbterm
fi
408名無しさん@お腹いっぱい。
垢版 |
2018/09/12(水) 21:11:59.84
ちなみに今使うんならfbtermじゃなくてyaftのほうが軽いし余計な設定なしにUnicodeが扱えるのでおすすめ
2018/09/12(水) 21:37:44.27
>>407
ありがとう
fbtermは仮想コンソールの出し方調べてる時日本語が化けたから入れたんだ
下手にフォント弄ると欠けるけど
2018/09/12(水) 21:51:55.63
modern vim早速ポチったサンキュー
2018/09/12(水) 22:10:01.56
>>401
こんな表紙オライリーじゃない
412名無しさん@お腹いっぱい。
垢版 |
2018/09/12(水) 22:22:23.59
>>400
すいません
is_posix知らんかったです
ありがとう
2018/09/13(木) 02:53:41.85
>>411
オライリーで販売してるってだけで出版はオライリーじゃないよ
2018/09/13(木) 03:28:33.30
>>413
そうなのか
だから日本ではオライリーからじゃなくてアスキーだったのか
2018/09/13(木) 11:57:37.59
これ使ってみてください!
上手くいってます。

https://store.line.me/stickershop/author/540272/ja
2018/09/13(木) 18:14:16.45
ずっと:wq!で保存終了してたけど:xやZZがあるなら教えてくれよ
変更してないのにタイムスタンプ変わって気になってたんだ
ZQはちと押しにくいな
2018/09/13(木) 23:17:16.07
:xは案外盲点だよな
2018/09/14(金) 00:25:43.25
vi - How to exit the Vim editor? - Stack Overflow
https://stackoverflow.com/questions/11828270/how-to-exit-the-vim-editor

「Vimを終了する方法」、100万PVを突破
https://developers.srad.jp/story/17/05/25/0515242//
ストーリー by hylom 2017年05月25日 16時15分皆初めは困るやつ 部門より
技術系Q&Aサイト「Stack Overflow」に2012年8月に投稿された「How to exit the Vim editor?」という
質問ページのページビューが、100万を突破した(Stack Overflowの公式ブログ)。
このページでは「Vimが終了できない」という質問に対し、Escキーを押し、
続いて『:q』や『:q!』などを入力するという終了方法が親切に解説されている。
この記事は昨年Stack Overflowのページビュー全体の0.005%を稼いだそうで、
平日のピーク時には一時間当たり80人がこのページを見ていることになるという。
また、国別やメインのプログラミング言語別のアクセス統計も示されている。

そらこうなるわ
2018/09/14(金) 02:22:32.78
どういう事?
保存しないで終了したい時は:q!でやってたんだけど、もっと簡単に終われるの?
420名無しさん@お腹いっぱい。
垢版 |
2018/09/14(金) 03:32:05.27
https://qiita.com/clarinet758/items/d778e13d9c24e6f62683
ZQ
:q!と同じで保存せず終了
タイムスタンプは当然変わらない

ZZ
:xと同じで保存して終了
uで変更前に戻してから終了するとタイムスタンプは未更新のまま
あくまでundoだけだからxで消してもタイムスタンプは更新される

:wq!
保存して終了
変更せずともタイムスタンプは常に更新

vimにも終了するショートカットがあったって話
ZZとZQはノーマルモードらしい
確かに:wq!は開いてすぐ終了しても時間変わったわ
2018/09/14(金) 03:44:57.44
サンクス
こりゃ便利だね
2018/09/14(金) 09:02:44.66
変更せず :w しただけで多くの変更検知系プログラムが反応するから明白だと思ってたけど、タイムスタンプ更新されるの意外と知られてないんだな
2018/09/14(金) 09:41:16.02
:wって「write」の頭文字からきてるんだろうから書き込まれて当然と思ってたわ。違うんかな
2018/09/14(金) 11:48:37.84
基本的にZZと:qしか使ってなかった
たまに日本語関係ファイルでZZで抜けられないときがあってそのときは:w!してから:q!とか
2018/09/14(金) 12:16:53.44
shift+zキーなんて押しにくいからZZはほぼ使わない
2018/09/14(金) 12:18:38.38
いつもとちがうキーボードでコロンが見つからないときZZいいよね
2018/09/14(金) 13:14:06.24
:versinの出力結果って:filterで切り取れないのかな。
https://vim-jp.org/vimdoc-ja/various.html#:filter
↑ここを読むかぎりよさげなんだけど。
2018/09/14(金) 13:31:57.57
Vim8のパッケージ機能ってさ
~/.vim/pack/の下にstartやoptを配置すればいいのにどうして
~/.vim/pack/SOMETHING
とかいうディレクトリを挟む必要があるんだろう。将来的になにか拡張されるのかな。
2018/09/14(金) 14:18:54.00
ZZはいいけどZQって遠くね
せめてQQみたいに重ねりゃいいのに
430名無しさん@お腹いっぱい。
垢版 |
2018/09/14(金) 15:05:17.11
>>428だが自決した
各プラグン管理ツールをそこに置けということだ。
Voltなら~/.vim/pack/volt MinPacなら~/.vim/pack/minpac。
なるほどねぇ……
個人で管理する文にはどういう名前にすべきだろう~/.vim/pack/defaultとかかな。
2018/09/14(金) 19:42:17.47
>>430
死ぬなw
_とかでいいんじゃね?
2018/09/14(金) 22:29:49.58
>>431
死ぬな?
「_」は思い付かなかった。頭良いなあんた
2018/09/14(金) 22:54:58.71
昔はジョークで自己解決を自決って略してた気がするけど、最近は本来の自決の意味が失われつつある
そのうちネットから現実世界に広がり、辞書にも自決=自己解決の略として載るのだろう
2018/09/14(金) 23:45:09.22
以前どこかのスレでジョークで自決と書いたつもりだが、自己解決のつもりで書いたのならそれは間違いだ、リアルじゃなくてもそんな言葉は使うもんじゃ無いでんでんと説教された。
2018/09/15(土) 04:29:23.66
「云々 (うんぬん)」を「伝々 (でんでん)」と間違えてるのか?

どっからどこまでがネタか分からんな
2018/09/15(土) 07:38:57.21
ここがなんjやニュー速なら小1時間晒されるレベルのまちがいやめろ
2018/09/15(土) 08:18:11.32
>>432
自決には自殺の意味があるからさ
言いたいことわかってて言ったんだごめん
2018/09/15(土) 13:45:29.45
129 名前:[名無し]さん(bin+cue).rar[sage] 投稿日:2007/05/04(金) 18:32:42 ID:oAXBMef00
すいません、動画が見れないんですけど何のコーディック入れたらいいんですか?

130 名前:[名無し]さん(bin+cue).rar[sage] 投稿日:2007/05/04(金) 19:51:30 ID:oAXBMef00
自決しました

131 名前:[名無し]さん(bin+cue).rar[sage] 投稿日:2007/05/04(金) 20:02:22 ID:727ZIH/W0
待て!はやまるな!
2018/09/15(土) 15:49:31.69
>>438
130は間違った日本語を広めた責任を取って自決すべし
440名無しさん@お腹いっぱい。
垢版 |
2018/09/16(日) 22:23:01.05
vimで例えばiをaにnoremapすると、ciwとかのときにもcawって認識されるじゃないですか
単一コマンドのときだけremapして、ciwみたいなときだけ元々のキーにする方法ありませんか?
2018/09/16(日) 22:46:34.31
もしかして小指がない人?((((;゚Д゚))))ガクガクブルブル
2018/09/16(日) 23:08:54.86
>>440
試してないけどlangmapとか使えばどうにかなるかも
443名無しさん@お腹いっぱい。
垢版 |
2018/09/16(日) 23:44:56.82
noremapの代わりにlangmapするってことでしたら連続したコマンドのときもmap先に固定されませんか?
2018/09/17(月) 01:56:17.56
無理っぽいね
2018/09/17(月) 04:56:01.21
Vimの元ネタのViってまだ開発は続いているんでしょうか?
ググったけどよく分からないです
446名無しさん@お腹いっぱい。
垢版 |
2018/09/17(月) 08:21:24.65
>>440
c のようなコマンドの後続部分は「オペレータ待機モード」のマップの範疇なので
:noremap i a
:ounmap i

ただこの場合は単に
:nnoremap i a
で良い気がするけど

https://vim-jp.org/vimdoc-ja/map.html#omap-info
> あるマップをノーマルモードとビジュアルモードで使用し、そして、オペレータ待機
> モードでは使用しないという場合は、3つのモードに対してマップを定義してからオペ
> レータ待機モードのマップだけを削除します:
> :map xx something-difficult
> :ounmap xx
> ビジュアルモードとオペレータ待機モードの場合や、ノーマルモードとオペレータ待機
> モードの場合も同様にします。
2018/09/17(月) 21:04:37.11
今あるのはviじゃなくてnviじゃね?
unixのコードを取っ払って作り直したvi
軽さ以外であえてこれを使う意味なさそうだけど
2018/09/18(火) 01:53:06.93
vimの矩形貼り付けが覚えられないんだけどいい方法ない?矩形挿入は覚えたけど
プラグインはどれ入れればいいか分からんし管理も面倒っぽいし入れてない
2018/09/19(水) 13:05:35.08
ビジュアルブロックモードで
??????????
?????? ??????
?????????? ????????
????????
????????????



??????????
??????
?????????? ??????
???????? ????????
????????????

ってするのどうやるんや???
2018/09/19(水) 19:57:38.64
よ、読めない…
2018/09/20(木) 06:31:06.16
どゆこと
俺には空白行にしか見えないが
2018/09/20(木) 07:41:11.87
空白行を同数の空白行に変えるだけなので、何もしなくてよい。
HTMLタグをミスって表示されていないだけなら、本人の釈明があるまで放置しておけばよい。
2018/09/20(木) 19:21:05.48
5chってHTMLタグとか効いたっけ。
<br />
<br />
test
2018/09/20(木) 19:21:22.17
効かないじゃん。
2018/09/20(木) 20:18:21.47
Vimで地域化されている単語を利用する方法ってある?
うまく説明できるか怪しんだけども
言語環境変数を日本語でVim(huge版)を起動した時は挿入モードに入るとコマンドラインに「-- 挿入 --」という文字が表示されるのに対して
言語環境変数が英語の場合は「-- INSERT --」という表示になるよね。
この処理を拾えないかな。

具体的には,現在のモードをstatuslineにテキストとして反映したい。
その時に英語で立ち上げたときは「INSERT」,日本語で立ち上げたときには「挿入」みたいな表示になってほしい。
2018/09/20(木) 21:24:52.53
>>455ですが質問をとりけします。
statuslineは扱えるコマンドが貧弱すぎて仮に上述が実現したとしても望む表示は得られないと判断しました。
2018/09/20(木) 22:33:31.10
普通にLANG=C vimで英語起動しちゃイカンのか
このCがcancelのCじゃないらしくて驚いたわ
2018/09/20(木) 23:58:02.64
>>457
LANG=C vim
で起動した場合はA表示して
LANG=ja_JP.UTF-8 vim
で起動した場合はBを表示
っていうふうにしたいんだわ。
if v:lang='ja_JP'
みたいにしたらいいのは知ってるけど
AやBは翻訳されてる対応関係があるので(INSERTと挿入)
せっかくならそれを利用したい。
2018/09/21(金) 08:12:07.04
>>456
判断ミス。関数呼べて好き勝手にできるよ。
460名無しさん@お腹いっぱい。
垢版 |
2018/09/21(金) 14:34:53.98
>>455
Pythonインターフェースが有効なVimなら、Pythonのgettextモジュールが使える
素のVim scriptにはなさそう

https://pastebin.com/FTq4Mb3H

ついでに statusline の設定にも挑戦してみたけど、i_CTRL-O のとき期待通りにならなかった
挿入モードで CTRL-O したときの mode() の値は 'niI' だと思ったのだけど、実際には 'n' になってる
set statusline=%!mode() で確認できる
2018/09/21(金) 17:38:57.82
>>460
横からだけど
mode()でなくmode(1)
にすればいいんでは。
462名無しさん@お腹いっぱい。
垢版 |
2018/09/21(金) 18:31:26.25
>>461
おお、できた

:help mode() の一段落目にちゃんと書いてあるじゃんね
最初からその下の表とばっかり睨めっこして、完全に見落としてました
ありがとう
2018/09/22(土) 16:38:23.18
Vimのleaderをスペースに割り当てようと思ってるんだけど、暗黒美夢王とかのdotfile見るとそのままスペース+他コマンドってやってて

Leaderとしてのスペースとそのままのスペースの違いってleaderに制限時間あるだけ?
2018/09/23(日) 07:55:11.55
>>460
すいません。まさか答えてもらえるとは思えず
返信が遅れてしまいました。
まさにそのようなステータスラインが欲しかったので
ほんとうに感謝しています!
2018/09/23(日) 09:04:08.46
>>463
複数キーのマッピングに制限時間があるかどうかは 'timeout' オプションで制御されるのであって、leaderかどうかは関係ないはず
2018/09/23(日) 14:23:59.75
ヘルプを引かずにvimコマンドの一覧を出す方法ないですかね
索引とは言わんからbashのhelpみたいな要約が欲しい
2018/09/23(日) 14:40:31.24
>>466
"(それぞれのコマンドの)ヘルプを引かずに"って意味だね?

:h quickref
2018/09/23(日) 16:09:58.91
Vimでシステムのコマンドを補完する方法ってある?
C-x C-fでシステムのファイルを補完するように。
2018/09/23(日) 17:43:48.45
いまやったら普通に出てきた
:!ここで何か途中まで打ってタブで
2018/09/23(日) 20:39:41.65
>>467
マジであるんかい
vimtutorや:の補完と一緒にスレのテンプレに入れておくべき
2018/09/23(日) 21:30:30.01
>>469
いやそうじゃなくて
インサートモードのときにそれをやりたんだよ。
意図を伝えられなくてすまん。
2018/09/23(日) 22:07:52.59
失礼します
Vimで

#include <stdio.h>
int main() {
printf("Hello World");
return 0;
}

の intのiにカーソルがある場合、jで下に移動するとiの真下のスペースに改行がいきますが、インデントを考慮して、printfのpに下移動するにはどうしたら良いでしょうか?
2018/09/23(日) 22:08:48.19
スペースが省略されてますが、printfとreturnの前に4文字スペースのインデントを入れたつもりでした
すみません
2018/09/23(日) 22:24:04.46
>>472
エンターキーか + でおk
2018/09/23(日) 23:00:44.67
>>474
返信ありがとうございます
上移動の時にもインデントを考慮することはできないでしょうか?
2018/09/23(日) 23:32:48.52
-で同じように動くけどこれインデントとか関係なく
最初の文字に移動してるだけじゃない
2018/09/24(月) 00:28:54.71
ファイルタイプごとのインデント考慮して行移動って出来なかったっけ
2018/09/24(月) 01:58:41.52
ノーマルモードでもEnterで空行挿入できるようにしてたわ
、Enterで改行な
479名無しさん@お腹いっぱい。
垢版 |
2018/09/24(月) 03:34:58.23
>>468
これ誰か分かりますか。
2018/09/24(月) 05:29:54.25
>>479
システムコマンドの辞書作って辞書補完
2018/09/24(月) 19:47:03.34
>>479
vim foo.vim
してインサートモードで
:!<C-x><C-v>
とかか?
スクリプトからなら、例えば
echo getcompletion(‘v’, ‘shellcmd’)
ってすれば、viewやVimやvimdiffやもろもろ表示されるから上手いこと使って。
2018/09/24(月) 21:49:28.38
>>480
>>481
つまり
getcmdpletion('', 'shellcmd')
を辞書につっこんでやればいいのでは
2018/09/25(火) 08:04:20.99
raspbianでvimprocビルドしようとすると
セグメンテーションフォルト出るのですが
どうしたらできますか?
2018/09/25(火) 08:42:46.53
Linuxのエディタと言えばvimとEmacsだけど他のエディタが普及しなかったのはなぜなんだろうか
nanoの登場からまだ20年経ってないし当時はvi系以外の選択肢がなかったにしてもだな
Ctrl-Aを使う普遍的なキーバインドのCUIエディタが一向に導入されない理由にはならんだろうよ
対してBSDはそれが使えるeeがあるらしいし
別にviへの不満じゃないからgedit使えとか益体もないのはなしで頼む
2018/09/25(火) 10:44:34.44
>>483
今使っていませんが、試してみると普通にビルドはできるようですが。
raspi 4.14.62+
486483
垢版 |
2018/09/25(火) 18:13:15.28
>>485
情報ありがとうございます
普通にできるはずなんですね・・
もう少しがんばってみます

Linux raspberrypi 4.14.61-v7
で以下のようになってしまいます

~/.vim/bundle/vimproc.vim $ make
make -f make_unix.mak
make[1]: ディレクトリ '/home/pi/.vim/bundle/vimproc.vim' に入ります
cc -W -O2 -Wall -Wno-unused -Wno-unused-parameter -std=gnu99 -pedantic -shared -fPIC -o lib/vimproc_unix.so src/proc.c -lutil
<built-in>: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-6/README.Bugs> for instructions.
make_unix.mak:17: ターゲット 'lib/vimproc_unix.so' のレシピで失敗しました
2018/09/25(火) 22:32:53.71
geditは初心者には使いやすいよ。
viとか鬼畜レベル
2018/09/26(水) 13:58:08.61
益体のない返答するなって釘刺されてそれはどうなの
2018/09/28(金) 09:46:46.22
Vimの:Manプラグイン,日本語の見出しがおかしくなってるんだけど
俺の力ではそもそもなにが駄目なのかすら分からん……
誰か修正できる人いない?
2018/09/28(金) 22:02:06.17
Vimでcppを今日初めて書いたのですが、
インサートモードでstd::cin の::打つ時に、1つ目の:の時にインデントが削除され、文ごと行の最初にいきます。(分かりづらくてすみません)
2個目のコロンを打つと直るのですが、文を移動させない方法はありますか?また、どうしてこのような挙動なのでしょうか
2018/09/28(金) 22:45:33.67
C言語やC++言語ではラベルつけるときにインデントを一つ下げる習慣があるからじゃない。
void main(){
std::cout << "test";
label1:
std::cout << "label";
goto label1;
}
2回連続::をシュパパパって入力すれば問題解決じゃない?
2018/09/28(金) 23:10:19.13
https://vimrcfu.com/snippet/126
https://stackoverflow.com/questions/6471556/avoiding-label-indenting-in-c
よく分からない
とりあえずこれで出来るようにはなった
:set cinoptions+=L0
2018/09/28(金) 23:29:08.56
うーん。結局インデントが元に戻るならどうでもいいと思うんだが。
2018/09/29(土) 00:14:09.29
何故改行時にインデント解除するようにしなかったのかという気はする。
2018/09/29(土) 00:15:06.25
gotoは邪悪
2018/09/29(土) 00:27:17.82
>>489
何そのプラグインは?
2018/09/29(土) 00:28:31.95
https://pbs.twimg.com/media/CplOeu8VIAA3s_F.jpg
2018/09/29(土) 00:28:40.97
>>496
標準プラグイン
https://vim-jp.org/vimdoc-ja/usr_12.html#find-manpage
2018/09/29(土) 00:29:14.71
標準プラグインだから,みんなメンテされてると思ったらおおまちがい
2018/09/29(土) 00:34:31.08
>>498
サンクス
そんな便利な機能が標準であったのか!
2018/09/29(土) 04:50:32.41
便利な機能ではあるんだけど
日本語の見出しがズレたり消えたりするんだよね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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