Vim Part31 (738レス)
1-

72
(1): 2023/01/10(火)05:25 AAS
vimの本領はシェルからのワンライナーだよな
:normalモードのコマンドとマクロ、レジスタ使えばperlなんかより断然短い
:norm 5jwqdaw2jqq@wggp
73: 質問です 2023/01/10(火)07:59 AAS
このスレでのF9って何ですか?

外部リンク:www.google.com

外部リンク:www.google.com

とか見ても良く分からず。。
※最近のノートPCのファンクションキーの割当てがウザいので日本語入力ではCtrl-I / Ctrl-O / Ctrl-P多用中
※※個人の感想でふ
74: 質問です 2023/01/10(火)08:04 AAS
>>71
UNIX以外の環境で、正体がelvis / nvi / vim / neovim以外の環境って、どんなものがありますか
75: 2023/01/10(火)12:17 AAS
わりとどうでもいい話
76: 2023/01/10(火)12:35 AAS
vimの方言で挙動が変わるリスクを負うくらいなら素直にsed / perl使え
77: 2023/01/10(火)13:11 AAS
別にRubyでもPythonでもいいnだぜ
78
(1): 2023/01/10(火)15:32 AAS
UI立ち上げずにバッチ処理に使える高機能エディタって他にemacsくらいしかなくね?vim禁止だと一気に面倒くさくなる
ストリーム処理で済むならストリームエディタでいいけど
79
(1): 2023/01/10(火)15:56 AAS
>>78がどういう状況を具体的に想定しているか分からない
むしろトラブってるときはvimが無い方が普通のような
80: 2023/01/10(火)16:03 AAS
>>79
トラブルとか知らん、普通にテキスト処理の自動化
テキストオブジェクトを認識するだけで、perlみたいに難解な正規表現で対応する引用符や括弧探すとかアホらしい事やらんで済むだろ
81
(1): 2023/01/10(火)16:41 AAS
スクレイピングか
そういうのはyi(で一発なvimの独断場だな
ネストしてるとregexではかなり面倒
82
(1): 2023/01/11(水)15:28 AAS
vimscriptが腐ってるしシェルスクリプトから呼べるのは有り難い
--clean等でシンタックスやプラグイン読まなければ100msで起動するからワンショットには十分使える
83: 2023/01/11(水)15:52 AAS
大量のファイルを処理するならxargsで渡して:argdoだな
プロセス起動がファイル数/引数上限で済む
84
(1): 2023/01/11(水)16:19 AAS
>>72
> 5jwqdaw2jqq@wggp
これって何ですか
意味が解読できない。。
85: 2023/01/11(水)16:43 AAS
>>84
全部基本コマンドだと思うが…

一応
5行下って1単語進み、単語をカットして2行下る操作をqに記録し即再生、(無意味に)一単語進んでバッファの初めに戻りカットした単語を貼り付け

qのマクロを活用してない(ループが完結してない)コード片だから、適当じゃね
86: 2023/01/11(水)17:06 AAS
ごめん違う、本来に無意味
qdでdに記録始めてd使ってないし、次のq@wでまた謎のwを引用しようとしてるけど、q@がレジスタ名として多分不正だから無意味、最後のpはqのタイポ?

やっぱマクロは闇だわ
87: 2023/01/11(水)17:14 AAS
面白いー
88
(1): 2023/01/11(水)17:52 AAS
マクロの直打ちは辞めた方が…
実際にUI開いてqで記録、:regで中身を見て手直しするもの
:helpにある再帰やループマクロのテンプレだけを知ってればよくて、あとはそこへそれを突っ込むだけだ
89
(3): 2023/01/16(月)13:52 AAS
neovim 0.6.1です。
一つ目のターミナルでファイルをviewで開き、
もう一つのターミナルで同じファイルを編集可で開いて編集した後に
一つ目にカーソルを戻すと2つ目のターミナルで編集した情報が自動で反映されるのをオフにしたいです。

set noautoread
を入れたのですが、
W11 ファイルは編集開始後に変更されました
というワーニングが出てくるようになりました。
このワーニングを出ないようにするにはどうすれば良いですか?
90
(1): 2023/01/17(火)00:51 AAS
FileChangedShellで何かすれば消えるっぽいから
autocmd! FileChangedShell * echo “”
とか
91
(2): 2023/01/18(水)16:20 AAS
>>88,89
無条件で黙らせると知らぬ間にswapファイルが溜まりそうな予感が

viewとして呼んだならv:prognameやv:argvに'view…'みたいなのが入ってるはずだから
:if v:argv[0] =~ 'view\s'

:if v:errmsg =~ "^E11"
のようなアドホックなチェックがまず思い浮かぶ
行儀良くしたいならviewモードを示すフラグくらい存在するはずだし、1プロセスで複数のモードを使い回すならバッファローカル版(b:~)の方がベター

>>82
普段から対話的にvimを使ってるなら学習コスト0というシームレスさがいいね

シームレスさを追求した代償にvimscriptはexコマンドの拡張という"スクリプト言語として"は悍ましいモノが産まれたが
一方でexコマンドの拡張として見ると自然だったりする
:ifなど制御構造が閉じなくても良かったり、|で区切れたり奇妙に見える部分はシェルやsystem関数からコマンドとして呼びやすく、という配慮
-c ':g/pat/ :if 80 <= line("$") | :trimit'

:if, :while, :for, :letなど基本制御コマンドと、:silent, :redirなどi/o制御、自動で設定される変数類v:...だけ借りて、他は:normal/:executeで手に馴染んだ事だけをやる
normal/ex以外は修飾/特殊文字を引数へ埋め込むのが気持ち悪いが、少し欲しい時にはエスケープ構文(<Esc>、<C-Left>等)が重宝

vimscriptでプラグインなんて書き始めた奴らが諸悪の根源
92: 2023/01/18(水)16:55 AAS
>>47,70
(単純な)制御構造が必要か?が使い分けの目安

一応:t label(直近のs///で置換が行われればgoto)や:b label(goto)を駆使すれば:ifや:whileをエミュレートは可能だが
気が狂わんのか

そもそも-iオプション付きのsedはストリーム処理である意味が無いから、ストリームの無駄使いでしかない論理的に誤った使い方
ポータビリティ云々を気にするなら、最低でもマルチライン処理とバッファリングをサポートしてるedを使え
sedより高機能だし、patchコマンドもネイティブ入力フォーマットとして自動認識する(外部edを呼ぶか独自エミュレート)
93: 2023/01/18(水)17:32 AAS
機能というより、ストリーム処理とバッチ処理の区別がついてないんじゃないの
holdバッファを駆使して高度な処理をやればやるだけ、行毎に再スキャンを繰り返すストリームエディタはCPUとメモリを急激に食い潰す

一度メモリに収めて終わりで済まないサイズならsplitで分けてマルチプロセッサを活用
小さくてもいいから一時ファイル専用のSSDが用意できればベスト
ハードウェアを活用しろ
94: 2023/01/18(水)19:23 AAS
>>89
>>91
view --servername #[デフォルト名view1]のようにエイリアス定義しておくとうっかり.swp増殖防止に役立つ

viewは役割上シンタックスを沢山読む/カスタムしていると編集用vimの設定と衝突しそう
個人的には分けた方が良いと思う

体感一秒足らずだけどラグいのが一つと
明示的な--servername NAME指定無しの --remote* excmd/key/fileは自身のargv[0]を見てNAME1..を探すこと
vimとして起動してviewモードに切り替えて使っているとプロセス名はvim1のようになる
デフォルト機能で済む処理だから手の空いてる汎用vimという意図で無指定のコマンドを送ると、先のvim1(viewモード)プロセスに誤爆する
たぶん
95: 2023/01/18(水)19:35 AAS
サーバとして稼働できるようになって起動ラグ無し、履歴やレジスタも勝手に同期してくれて便利になった
一方で状態共有に特有の罠もある

デフォルトのサーバ名はプレーンなvimとして呼ばれる想定で予約しておくべきか
96: 2023/01/18(水)21:28 AAS
>>91
オプションreadonly, roはバッファローカル
(変数参照式として&ro)
97
(1): 2023/01/18(水)23:03 AAS
>>90
対話モードでキープレスやechoでエコーエリアを上塗りクリアは禍根を残しそう
:messや:redir先のファイルへ謎の改行が混入したり、デバッグレベル依存で止まったり

とりあえず:silent!で黙殺するか、
:try | :call MyFileChangedShell | :catch /E11:/ | :set noro | :endtry
こんな雰囲気で行けない?MyFileChangedShellやcatchの中は適当
遷移自体は済んでいるのか、フック用に~Pre/Post版があるか、など発動条件依存なのでヘルプ参照
98: 2023/01/18(水)23:15 AAS
いつまで偽物の Vim の話してんだよ
99: 2023/01/19(木)17:36 AAS
>>97
最初の質問とヘルプを読めよ
100: 89 2023/01/25(水)09:35 AAS
>>89です。レス遅くなりすみません。
皆さんご意見ありがとうございます。
どれも一長一短ありそうでなかなか根が深いですね。。

ひとまずいくつか試してみます。
101
(1): 2023/01/30(月)19:29 AAS
ヴィムでマークダウンのプレビューとアウトライナー(ヘッダーの)ってありますかね?
1-
あと 637 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.011s