Vim Part29

■ このスレッドは過去ログ倉庫に格納されています
2019/02/14(木) 00:54:19.01
Vim 6以降に関する話題です。
http://www.vim.org/

前スレ
Vim Part28
https://mevius.5ch.net/test/read.cgi/unix/1526552297/

関連情報は>>2-3あたり
2020/02/04(火) 12:50:51.21
最近のVimはバニラでも高級なことができるからほぼ要らない。
特殊なことしたけりゃVimスクリプトじゃなくて組み込みのPython使えばいいし。

でもまあ、面白いプラグインも結構あるよね。音楽流したりw
2020/02/04(火) 15:44:42.28
端末から直接vimのヘルプを引く方法を教えろ下さい
manみたいにできないか
2020/02/04(火) 17:02:37.01
$ vim +h (調べたい項目)

$ vim +h popup
2020/02/04(火) 17:18:31.90
onlyつけた方が見やすいな
$ vim +'h (調べたい項目)|only'
$ vim +'h popup|only'
2020/02/04(火) 17:31:47.83
vim-h () {
vim +":help ${1:help}|only"
}
$ vim-h c
引数なしだとhelpトップになる
helpを閉じてもvimが残ってて困ってたけどonly便利だな
2020/02/04(火) 17:33:16.63
alias man=vim +h
2020/02/05(水) 21:15:10.15
>>628
拙作ですまんが
https://gist.github.com/cmplstofB/da3b33938320b0227229f771cd12d6e3
2020/02/08(土) 15:07:10.26
Gが最終行でggが先頭行ってのが不可解なんだけどどう解釈すればいいの
hjklでさえ慣れたのにこれは一向に
2020/02/08(土) 15:14:31.79
先頭行は1Gにしとる
2020/02/08(土) 16:26:26.62
gの意味は素直にgoだと思う
Gの対がggなのは小文文字のgで始まるコマンドが沢山あるからだろうな
gがマップリーダーになってるから単独のgは使えないと
なんでGで下に行くかは知らん
2020/02/08(土) 16:49:04.52
GはGyou(行)の頭文字だから数字Gで数字の行に移動できる
ここでGにデフォルトの値を与えることを考える
Gのデフォルトは1でも10でも100でも何でも良いが、最初または最後の行に移動するという頻繁に使われるのがデフォルトとして適切だろう
最初の行に行く動作は常に1Gで達成できる
一方最後の行に行く動作は999...GのようにMax行数以上の数値を指定する必要がある
したがってGのデフォルトはファイルの最終行に移動が適切


ggはなんかあれでしょ1Gだよ小指がつりそうだからほら
2020/02/08(土) 19:21:42.95
ここに詳しい経緯が載ってるぞ
https://www.reddit.com/r/vim/comments/b1s7i8/why_arent_gg_and_g_switched/
2020/02/08(土) 23:43:59.01
下はG
上は:1と打ってる
EWS-UX-Vの時代から
2020/02/09(日) 00:57:50.58
末尾が$Gなのがね・・・
2020/02/16(日) 18:49:33.65
初歩的なんですが複数行の範囲指定ってどうすれば
50行間隔で改行を挟みたいんですが50Vとしても矩形になるし
2020/02/16(日) 19:51:33.68
qq50jo<ESC>q
@q
2020/02/16(日) 23:00:27.49
キーボードマクロ便利よね
2020/02/17(月) 02:04:42.49
改行挟むの処理はマクロが便利だと思うが
単にビジュアルモードで選択したいなら
V50jy とかで1度50行選択してビジュアル操作をしておくと
次から1Vで50行選択になる(2Vで100行選択)
2020/02/17(月) 07:08:28.07
いっそsedという手も
$ seq -w 100 | sed '1~50s/^/\n/'
2020/02/25(火) 01:12:17.03
vimって文字の切り取りだけだけど純粋な削除ってないのか
ddは実質切り取りだからレジスタが更新されて台無しになるよな
予め文字列をコピーしてから何かを消して貼り付けって自然な動作だと思ってたんだけど
2020/02/25(火) 01:21:09.52
ブラックホールレジスタでググれ
2020/02/25(火) 21:13:52.18
"_dd
2020/02/25(火) 21:49:55.93
消すときに指定はめんどくさいから”0p
2020/02/25(火) 23:43:57.55
ブラックホールレジスタ知らなかったわ
サンクス
2020/02/26(水) 00:35:18.56
vim五大初見殺し
・保存方法が分からない
・クリップボードが使えず不便
・切り取りだけで不便
・IMEとの相性が最悪

vimは本腰入れて覚えようとするとこれ食らうから結構萎える
最初は保存にはしゃぐけどコピペもままならないから結局手間だろって
ブラックホールレジスタなんか用語知らなきゃ出て来ないしな
nnoremap設定するだけだってのは的外れだもの
2020/02/26(水) 01:27:21.81
皆同じ不満を持ってるのでセーフ
【vimめも】 3. レジスタ - Qiita
https://qiita.com/r12tkmt/items/97afb4b489966e746b20
2020/02/26(水) 07:11:38.08
レジスタ使い分けるよりファイル内の適当な場所に一旦貼り付けて残しておくか無名バッファを作って作業領域にした方が簡単だと思う
2020/02/26(水) 16:04:49.68
yankround使ってる
2020/02/27(木) 01:05:02.61
指定したコマンド履歴の削除ってできないですか
入力ミスった奴を消して整理したい
2020/02/27(木) 01:25:34.70
>>655
.viminfo
2020/02/28(金) 16:15:20.80
$ printf "%s\n" foofoo{1..3} > aa.txt
$ sed '2s/foo/@/2' aa.txt
$ ed -s aa.txt <<< $'2s/foo/@/2\n,p'
foofoo1
foo@2
foofoo3
sedやedはこれで置換する行と位置を指定できるけどexはダメなのか

$ ex -s aa.txt <<< $'2s/foo/@/2\n%p'
foofoo1
@foo2
@foo3
vimだとどうやるんだこれ
2020/02/28(金) 19:27:38.53
行は指定できるから後は正規表現
659名無しさん@お腹いっぱい。
垢版 |
2020/03/13(金) 00:21:57.82
vimを学び始めています。置換が良く分かりません。
正規表現で「[A|B]00000」と言う文字列を「[A|B]11111」に置き換えたい場合どうすればよいでしょうか?
調べても下記●●の部分がイマイチ分かりませんでした。
:%s/[A|B]00000/●●11111/

宜しくお願いします。
2020/03/13(金) 01:26:21.08
俺なら:%s/\([A|B]\)00000/\111111/g
かな?
先読み後読みが苦手だからもっといい書き方ある気もするけど
2020/03/13(金) 01:28:35.16
マニュアル参照
https://vim-jp.org/vimdoc-ja/pattern.html#/magic
2020/03/13(金) 22:40:55.53
>>660
なるほど、「\1」は試したのですが、括弧が必要だったのですね。
括弧を使い、それを加えさせない為にgを加えるわけですね。
ありがとうございました。
663名無しさん@お腹いっぱい。
垢版 |
2020/03/13(金) 22:42:53.66
>>661
これ読んでわかる初心者っているのでしょうか?
2020/03/13(金) 23:30:34.93
>>663
vim内からすぐにアクセスできるドキュメントがあるのに読まないのはありえない
読んでわからなかったらどこかの解説記事を探してぐぐるべき
2020/03/13(金) 23:43:25.19
>>663
正規表現は分かってるけど
vimが分かってないvimの初心者なら
読めば分かる

659のように正規表現自体を理解してない人は
正規表現から先に学ぶべき
2020/03/13(金) 23:51:15.47
>>662
gの解釈は多分違うぞ
最初だけでなく複数回マッチした場合も全部置換する
2020/03/14(土) 00:11:56.76
>>663
そう突っかからず専ブラで正規表現NGとかから楽しくお勉強してみませんかね?
正規表現道場とかもどこかの板にあったよ
2020/03/14(土) 08:37:02.73
とりあえずVIMの正規表現は常にvery magicモードでやるのが基本だね
2020/03/14(土) 08:55:57.47
magicモードの方はsedに似てるから達人は好むのかと思ってた
2020/03/20(金) 03:52:42.01
nnoremap [hoge] <Nop>
nmap <Space>h
nnorema [hoge]f :Fuga<CR>

上記のようなものを見かけて意味としては理解できるんですがこの[]で囲むののヘルプを見つけることが出来ませんでした
なんて調べればhelpでてきますか?
2020/03/20(金) 09:12:26.68
>>670
2行目は多分 nmap <Space>h [hoge] でしょ
スペースhと打てば単純に[hoge]が入力されるだけ
スペースhfと打てばFugaコマンドが実行されるようになるのが3行目
2020/03/20(金) 12:53:29.31
>>670
括弧で囲んでいるのは見た目以上の意味はない
単なるマッピング
2020/03/20(金) 19:03:59.24
>>671
二行目おっしゃるとおりですtypoしました
>>672
それだけだったんですか…ありがとうございます
拍子抜けしちゃいました
2020/03/20(金) 23:46:53.92
>>668
毎回&#165;vと打つのが面倒なんだけど、デフォルトで&#165;vにするのはできないんかなぁ
2020/03/20(金) 23:47:20.11
うわ化けた
\vね
2020/03/21(土) 00:33:42.32
できる
2020/03/21(土) 01:26:46.77
>>674
>>312,313
2020/03/21(土) 13:10:47.28
>>677
それだと、exコマンド打つときに効かなくない?
エンジン自体をVery Magicにしたいのよ
2020/03/22(日) 11:50:29.62
現在位置の強調ができないんだけどなぜだろう
http://i.imgur.com/YHxRuaW.png
:source ~/.vimrcした直後は反映されるけどカーソル移動したら消える謎
2020/03/22(日) 12:31:21.52
エスパーするにも無理がある気がするがとりあえずその設定をvimrcの最下行に移してみてそれでも再発するか
再発するならプラグイン消してみてそれでも再発するか調べる
とかやってみればいいんじゃない?
2020/03/22(日) 14:39:14.61
一度設定を全部コメントアウトして確認するのがいいかな
2020/03/22(日) 15:11:08.28
vim --clean で起動してからその設定を入れて確かめてみろ
2020/03/26(木) 11:15:54.83
$ seq 3 | vim
Vim: 警告: 端末からの入力ではありません
Vim: 入力を読込み中のエラーにより終了します...
Vim: Finished.
??
2020/03/26(木) 11:40:55.25
$ seq 3 | vim -

最後のハイフン
2020/03/26(木) 15:34:24.24
pipe.vim でググると幸せになれるかも
2020/03/27(金) 02:39:29.27
git, cd, su, cat, diff, vim...-(ハイフン)でできること@コマンドライン - Qiita
https://qiita.com/ryosukes/items/b9a3b2913f72e1127e58
2020/04/02(木) 22:44:37.23
>>653
無名バッファを使うっていう手は考え付かなかった。
たしかにそのほうが便利かも知れん。
今日から切り貼りするときに試してみよう。
2020/04/03(金) 17:46:22.19
vimの空行のチルダ(~)って変更できます?
これのせいで動作が重くなる
2020/04/03(金) 19:09:58.33
>>688
endofbufferでググれ
690名無しさん@お腹いっぱい。
垢版 |
2020/04/03(金) 23:09:14.48
>>688
それで重くなるんすか?
2020/04/04(土) 02:32:28.83
highlight link EndOfBuffer Ignore
これで軽くなりました。ありがとうございます
2020/04/04(土) 03:13:00.88
>>690
重くなるよ
ハイライト系は重くなる
2020/04/04(土) 12:41:08.65
vim-airline の表示が頻繁に崩れます
代わりのお勧めがあったら教えてください
2020/04/04(土) 16:31:16.86
大丈夫だけどなあ
https://i.imgur.com/Aqau15z.png
https://i.imgur.com/jhkoUtU.png
2020/04/05(日) 10:40:14.74
>> 694 ありがとうございます
今 `gf` でファイルを移動すると、 `ln : 43` が `ln : 143` になりました
本来は `ln : 1` です こういうのを何とかできないでしょうか
2020/04/05(日) 11:11:35.66
問題ないけどなあ
https://i.imgur.com/gkMNxgA.mp4
2020/04/05(日) 13:17:36.50
>> 696 な、なに〜〜!!
動画までありがとうございます。なら自環境が悪いのかと、色々調べたところ
vimrc から set ambiwidth=double を消したら、表示崩れが無くなりました
Vim ワカラン……
2020/04/05(日) 14:27:02.18
いいってことよ
2020/04/08(水) 09:23:27.79
コピペしすぎて設定がとっちらかってるわ
項目別はしてるけどどうも
2020/04/11(土) 18:21:41.18
かなりのhelpが日本語訳されてるから
その点だけでも英語クソよわの俺にはありがたいわ。
2020/04/11(土) 18:56:37.72
Vimってどちゃくそ日本語化が進んでるような気がするんだがなんでなの?
2020/04/11(土) 19:48:14.09
コミュニティにやる気があるから
2020/04/11(土) 21:33:29.47
enc=utf8にすると、■とかが半角になってしまうんだけどしかたがないのかなぁ?
2020/04/11(土) 22:29:28.71
ターミナルエミュレータの設定
2020/04/11(土) 23:59:03.77
>>704
Windowsのgbimなんですのよ。
2020/04/11(土) 23:59:13.09
gvimね
2020/04/12(日) 02:55:25.47
>>703
:set ambiwidth=double
2020/04/12(日) 09:15:53.69
>>707
できた!ありがとう!
2020/04/12(日) 11:56:40.14
入力中の単語を消す最も早い方法は何ですか?

具体的には
i am bord_
と入力してるときに、最後の単語のスペルミスに気づいてbordのところだけ消したい
2020/04/12(日) 12:06:36.24
>>709
Ctrl+W
bashでも使えるぞ
2020/04/12(日) 12:18:52.34
>>709
<C-w> かな
2020/04/12(日) 12:42:17.54
>>710
>>711
早速ありがとうー
2020/04/12(日) 16:02:01.39
<C-o><C-w> で上書きしてたから知らんかったw
2020/04/13(月) 19:02:40.35
とはいえC-o系は便利よね
2020/04/14(火) 13:32:50.90
bashの操作はemacsらしいが使いこなせてないな
c-aの行頭とc-eの行末くらいか
2020/04/14(火) 14:29:26.36
C-dはよく使う
2020/04/14(火) 15:33:49.49
>>715
set -o vi すればいいのよ
2020/04/14(火) 18:10:55.22
Esc-fとEsc-bをAlt+fとAlt-bとかにマッピングすると捗る
2020/04/14(火) 20:11:33.78
bash の操作ですか
C-r が便利
カーソルウオークとしては、C-a, C-b, C-f, C-e ぐらいは使うかなあ
2020/04/14(火) 21:37:38.87
>>718
どうやって help 引く?
2020/04/15(水) 13:02:29.43
>>720
どういう意味?
Bashのキー束縛方法なら↓
https://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html#index-bind
2020/04/21(火) 02:26:04.50
/単語

入力中にリアルタイムでハイライトする機能が実装された覚えがあるんですが
有効化する方法を教えてください
2020/04/21(火) 03:12:22.91
>>722
set incsearch
set hlsearch
2020/04/21(火) 20:59:48.97
Emacs教から改宗してきました。
みなさんよろしくお願い致します。
2020/04/21(火) 22:34:15.21
Emacsはよく左手の小指を酷使するというが
Vimは右手の人差し指を酷使しがち
2020/04/22(水) 06:28:04.87
>>725
移動のノーマルコマンドを駆使すればそうでもないよ
2020/04/22(水) 12:13:17.75
C-f, C-b, H, M, L, マーク以外になんかある?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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