Vim Part31
://qiita.com/hnishi/items/9c937595a31ad2dca638 ://github.com/vim-jp/vimdoc-ja-working/wiki/Guide autofmt プラグイン 1 行は 78 桁以内である。autofmt を入れて gq を使うと上手く整形できる .vimrc に以下のように追記 はじめに、 autofmt というフォーマットするためのプラグインを導入するために、 vim-plug という vim plugin マネージャーをインストールしています。 以下のように .vimrc に書いておくことで、 ~/.vim/autoload/plug.vim が存在しない場合に、自動でインストールされる ============================ " vim-plug " ://github.com/junegunn/vim-plug if empty(glob('~/.vim/autoload/plug.vim')) silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ ://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif ============================ ==> まだよくわからない。これを追記する前に " 日本語を整形 set formatoptions+=mM set textwidth=80 削除。つぎに上を追記した。 以下で、autofmt を vim-plug で install するように設定しています。 後からプラグインを追加する場合は、.vimrc を更新して、 :PlugInstall でインストールできます。 ========================== call plug#begin() Plug 'vim-jp/autofmt' call plug#end() set formatexpr=autofmt#japanese#formatexpr() let autofmt_allow_over_tw=1 ============================ ==> " for translate vimdoc " ://github.com/vim-jp/vimdoc-ja-working/wiki/Guide " kaoriya版では設定済み 等のコメントは省く。 まずこれでok と思われる。.vimrcに限っては。じっさいの変更前に Tagged snapshot '2022-10-07_02-52-01': autofmt > ~/.vim/autoload/plug.vim が存在しない場合に、自動でインストールされる とは、どういう意味なのか ぜんぜんわからない。解説のとおりに .vimrc にまちがいなく追記はした。そしてじっさいに変更を適用した。 あとは ://github.com/junegunn/vim-plug インストール plug.vim をダウンロードし、「autoload」ディレクトリに配置します。 curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ ://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim <== この工程さえ要らないということか? すごい空腹なのでちょっと食べてからやる ああ、わかったぞ!いくらど素人の俺でもわかった。以下のコードをジッと見ればわかる。 いつもネットで拾ったのコピペのとき なんかわからん呪文として、中身をいっさい見ないで 貼り付けてるが。今回はちがうぞ、真剣だからだ! > plug.vim をダウンロードし、「autoload」ディレクトリに配置します。 が含まれておるではないかっ!! if empty(glob('~/.vim/autoload/plug.vim')) silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ ://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif ということは、なんか知らんが、そのままvimを起動させればいいのか! スゲーーーッッ なんじゃこりゃ〜〜 Updated. Elapsed time: 1.760819 sec. [=] - Finishing ... Done! - autofmt: Receiving objects: 100% (52/52), 48.21 KiB ノーエラーでvim起動してるが、これで さっきの長大な設定はきちんと適用されてるのかっ? Vim ヘルプの日本語翻訳者用の日本語編集設定を我がものとしたぞ! さっきダウンが1秒で終わったのはびっくりしたあ、翔平のスイングより速かったのは間違いねえ もうこの時間しんどいので、ちゃんといけてるか調べないし、なんかえろえろ出来るみたいだけど、単純な gq のだけできたらええ。 馬鹿野郎!!貴様ら。ぜんぜん教えんど、ひとをあらし扱いしやがって!なにもんじゃ?俺は粛々と、このスレで学んでいくぞ。 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 58 83129 58 48282 0 0 74624 0 0:00:01 --:--:-- 0:00:01 100 83129 100 83129 0 0 124k 0 --:--:-- --:--:-- --:--:-- 124k :nmap <Cc> マッピングは見つかりませんでした >>1002 > 文章にノイズが多過ぎる > 誰も他人の文章を読むのに時間を割きたくないとの前提に立ち > 必要十分な情報のみが記された簡潔な文章を心掛けるべし いま読みました。すいません🙇留意します 前スレで > 自分は教科書体の等幅で縦横比7:4くらいにして普通にテキストエディタとして使用しているな 教えてくれた方ありがとうございました。中国語フォントほか、あらゆるフォントを試した結果 かんぜんなる等幅である、この UD Digi Kyokasho N-R がいかに貴重なフォントであるかわかりました。 vimはもちろん専ブラも そのほかいっさいのコンピュータ上のフォントをこれで統一しました。 一点だけわからないのは、文中の「縦横比7:4くらいにして」の箇所です。 'formatexpr' 'fex' 文字列 (既定では "") |gq| や自動整形 ('formatoptions' 参照) で行の範囲を整形する ために評価される式。このオプションが空だと 'formatprg' が使われる。 例: > :set formatexpr=mylang#Format() < これは 'runtimepath' 内にある autoload/mylang.vim 中の関数 mylang#Format() を呼ぶ。|autoload| また、'textwidth' がオンになっていて、テキストを追加しているときにその 値を超えたときにもこの式が評価される。これは内部整形が使われるときと同 じ条件で起こる。 この関数が非ゼロを返すと Vim 内部の文章整形処理が使われる。 set formatexpr=autofmt#japanese#formatexpr() set formatoptions+=mB " または mM ------------------------------------------------- 'formatoptions' 'fo' 文字列 (Vimの既定値: "tcq", Viの既定値: "vt") バッファについてローカル 自動整形の実行方法を決めるフラグの列である。|fo-table| を参照。オプショ ン 'paste' がオンのときは、('formatoptions' が空のときのように) 整形は 行われない。読みやすくするために、フラグの間にコンマを挟んでもよい。 将来追加されるフラグによる問題を避けるため、コマンド ":set" では "+=" と "-=" を使うこと |add-option-flags|。 NOTE: このオプションは 'compatible' がオンになるとViの既定値に設定され、 'compatible' がオフになるとVimの既定値に設定されるので注意。 'textwidth' 'tw' 数値 (既定では 0) バッファについてローカル 入力されているテキストの最大幅。行がそれより長くなると、この幅を超えな いように空白の後で改行される。 'formatexpr' が設定されている場合、その値を使って改行される。 " autofmt_allow_over_tw 数値 (デフォルト: 0) " " 文字が 'textwidth' を越えることを許可する (前に改行があることを禁止する)。 " 与えられた幅のみ。 " " " autofmt_allow_over_tw_char 文字列 (デフォルト: 下記参照) " " 文字、前に改行することを禁止する。 この変数は " autofmt_allow_over_tw と共に使用されます。 " スクリプトのエンコーディング utf-8 " JIS X 4051(日本語文書の書式規則) " 4.3 改行禁止文字の前での処理 " これらの文字は、行頭に配置することはできません。 それは " は、'textwidth' を越えてぶら下げるか、前の文字と一緒に次の行にコミットさせる必要があります。 " 前の文字と一緒に次の行にコミットしなければなりません。 \ . ",)]}、〕〉》」』】=f”»" \ . "ヽヾーァィゥェォッャュョヮヵヶゝゞぁぃぅぇぉっゃゅょゃゎ々" \ . "‐" \ . "?!" \ . "・:;" \ . "。." 以上機械翻訳多用。 なんで一部の日本人しか使用しない日本語禁則処理のVimプラグインのgitのcommitやREADMEがぜんぶ 英語なのか? これを衒学的という。 開発者さんたち、リナックスに携わるすべての人たちへ考えてほしい。 英語と日本語を双語対照してのせれば問題ないのに、あえてこういうことをするのは、僕には劣等感のかたまりにしか見えない。 僕らは開発者さん頼りだ。自分ではできない。あなた達はじゅうぶん賢いのに、なんでこんなバカみたいな振る舞いをするのか? 君みたいなのが使わないようにだよ。 Microsoft Word を使っておきなさい。 >英語と日本語を双語対照してのせる というより、母国語で心を込めて説明を考え、しかるのち機械翻訳等で英訳なりを併記すればよい。 白人礼賛の欧米コンプレックスがすごく、自分の得意なコンピューティングをもって貢献し、日本やアジアをして世界の中心たらしめんとする気概はゼロである。 かくのごとき体たらくの若い世代が今後の日本を背負っていくならば、我が国の未来は推して知るべしであろう。 ウブントゥjpチームの機械翻訳ライセンス問題の淵源も、ここにあると考えている。 >>23 この数週間の間に格段にレベルアップしたかんな!!オメーラなんかすぐ追い越せるww >>23 > 君みたいなのが使わないようにだよ。 それがカッコいいことだと思っているのかっ? いまから20年前のマイクロソフト「アクセシビリティテクノロジー」には次のように書いてある。 「すべての身体障害者すべての知的障害者にも使用可能のウインドウズを目指す」(趣意) UNIXユーザーの志の低さとくらべてどうだ? 行番号つけて、こんどはそのまま行番号消したいです set の反対、unsetみたいのはないのか?よろしくです(o^∀^o) ---------------------------------------------------------- *:nu* *:number* :[range]nu[mber] [count] [flags] :print と同じですが、先頭に行番号を付加します。 (オプション 'highlight' と 'numberwidth' も参照) *'numberwidth'* *'nuw'* 'numberwidth' 'nuw' 数値 (Vim の既定値: 4 Vi の既定値: 8) ウィンドウについてローカル {|+linebreak| 機能付きでコンパイルされたときのみ利用可 能} 行番号を表示するのに使われる桁数の最小値。'number' か 'relativenumber' がオンのときか行番号付きで印刷するときのみ意味がある。常に番号とテキス トの間にスペースが1つ置かれるので、番号そのものに割かれる桁数はこれよ り1文字少なくなる。 この値は最小の幅である。 すいません30秒でネット検索で出てきました :set nonum 【行番号の非表示】 はじめてネットしたときからまず お前ら人力検索エンジン使用のクセがついてまして >>29 > お前ら人力検索エンジン使用のクセがついてまして 酷過ぎだろ PCの向こうにいるのは人間だよ 一方的な書き込みになるのは 考え方がおかしいからだよ おかしな考え方だから双方向のコミュニケーションが出来ない 彼はこちらを怒らせる為に書いているので、マトモな質問以外、無視するのが吉です。反応してはいけません。 >>31 > 酷過ぎだろ > PCの向こうにいるのは人間だよ > 一方的な書き込みになるのは > 考え方がおかしいからだよ > おかしな考え方だから双方向のコミュニケーションが出来ない すいませんでしたm(_ _)m 2ちゃんのノリなので、悪気ありませんでした。 >>32 > 彼はこちらを怒らせる為に書いているので 誓ってそんなことが目的ではありません。 >>29 > 行番号つけて、こんどはそのまま行番号消したいです > set の反対、unsetみたいのはないのか?よろしくです(o^∀^o) この質問を書いたときは、ほんとうにわからなくて、何週間も放置していたのです。 というのは、自分の頭の中にあるのは 「【行番号の非表示】はできないのかな?」という疑問じゃないですか? だからいっしょうけんめい :h 行番号 とかやっちゃうんですよっ? set も num も調べたんですよ! nonum なんか出てくるわけない :set nonum 【行番号の非表示】 変なこと書くのは 僕が6年前にはじめてネッツはじめたときから 取り付いてるキチガイが ミントスレ、ウブントゥスレ等のリナックス板におりまして そのキチガイが「おい、F9」とかわけわからんこと言いながら、どの板にもついてくるんですよね。 そんで、荒らし扱いされて煽られて嫌な思いすんのが怖くて、そんでこんなしゃべりかたになりました(T_T) ----------------------- 僕の目的は、自分のやりたいことを達成するべく、必要なスキルを早く習得したい -------------------- ということだけです。 >>33 関係のない人に迷惑をかけておいて都合の良い言い訳とか酷いと思う 悪気なくそういうノリで書いているなら異常だよ 異常さを自覚してvimの習得よりも人とのコミュニケーションの取り方を学んだ方がいいと思う quitする人を意味するquitterは、「(仕事や義務などを最後まで努力せずに)放棄する人」という意味らしい 英内相が辞任 トラス政権、存続の危機:AFPBB News https://www.afpbb.com/articles/-/3429790 2022年10月20日 5:57 トラス氏は19日、同計画の撤回後初となる議会での答弁で、議員のやじを浴びながらも 「私はファイター(闘士)であり、クイッター(すぐあきらめる人)ではない」と述べ、辞任を否定した。(c)AFP uキーで、だいたいちゃんと戻るんだけど、なんかuでも戻らない時がある。 どういう時に戻らないのかがわからない。俺が何をした時に戻らないんだろう? 以下の元のテキストがあって、|#B4FFEB|(色情報)が不要なので消したいです。 -------------------------------------------------- |#B4FFEB|書誌情報の「公開範囲」が「インターネット公開(保護期間満了)」※1である |#FFCAD7|インターネットで見られる資料の公開範囲欄に「保護期間満了」「許諾」「裁定」とあるのはなんですか。 |#D1FF61|許諾 著作権者の方からインターネット公開をしてもよいとご許諾いただいた資料に表示します。 |#FFCAD7|保護期間満了 著作権の保護期間が満了していることが確認できた資料 |#FFCAD7|読みやすく整形して配布 |#D1FF61|本は、zip 形式でまとめられた、Jpeg 画像ファイルです。展開すれば、普通の画像として閲覧できますが、ミルノ PC フォトフレーム などの画像ビューアーを使うと、zip 形式のまま中身を閲覧できます。 |#FFDE70|1 日のダウンロード量に制限があるため、一度に全資料をダウンロードせず、必要に応じて、1 巻ごとダウンロードしていただけると助かります。 |#FFCAD7|原資料のサイズは、5612 x 3808 |#D1FF61|1080 x 1669 に縮小 :%s/|#FFCAD7|//g で、一つずつは消せましたが、一括でぜんぶ消したいのです。 >>46 もうしわけない、以下まで学んだ時点で、理解不能になりあきらめ。 =================================================================== 03.9 簡単なパターン検索 Vimでは、検索に正規表現(regular expressions)を使います。正規表現という のは検索パターンを指定するための、極めてパワフルでシンプルな方法です。 残念ながら、これの実力を発揮させるには少々苦労していただくことになりま す。 行頭と行末 ---------- "^" は行頭を示します。英語(ASCII)キーボードでは 6 のキーに、日本語(JIS) キーボードでは 0 のキーの 2 つ右側に刻印してあります。 <-- ^^^^^ 確認 例えば、"include" というパターンは 行のどこかに include という単語を含 んでいれば、ヒットします。一方、"^include" は行頭にある include にだけ マッチします。 <--ああそういえば、これ使ったことあんな。 $ apt search -n ^mate | grep インストール mate-control-center/stable,now 1.24.1-1 amd64 [インストール済み、自動] mate-control-center-common/stable,stable,now 1.24.1-1 all [インストール済み、自動] "$" は同様に行末にヒットします。ですから、パターン "was$" は、行末が was で終わっている場合だけヒットします。 <--使用した記憶ない >>44 > sed 使えば? ありがとう。使用したことないので、 tps://www.sejuku.net/blog/54595 で学習中 $ sed s/orange/ORANGE/ sample.txt appleORANGEmelon $ 「sed」コマンドはあくまで文字列を置換して出力するのみで、実際のファイルの内容の書き換えは行いませんので注意しましょう。もし、置換した内容をテキストに保存したい場合はリダイレクト「>」を使用しましょう。 $ sed s/orange/ORANGE/ sample.txt > sample.txt --> できてない、ぜんぜんちがうんだろう。 >置換した内容をテキストに保存したい場合はリダイレクト「>」を使用しましょう。 この日本語文だけで使用したことないコマンドを類推するのむり リダイレクトで調べないと $ sed s/orange/ORANGE/ sample.txt appleORANGEmelon >はじめに紹介した書式では、1つの行に複数の置換対象文字列に一致した文字列が存在した場合でも、最初に一致した文字列のみしか置換されません。 >そこで全ての一致した文字列を置換 元のファイルを複数の置換対象文字列 存在するように書き換え appleorangemelonapple $ sed -e s/apple/APPLE/g sample.txt APPLEorangemelonAPPLE sコマンドを使うと、vim内でsedと同じことができる。 :s/|#B4FFEB|// :s/before/after/g 現在カーソルがある行の全てのbeforeをafterに置換 :s/|#FFCAD7|//g :%s/before/after/g 現在開いているファイルに出てくる全てのbeforeをafterに置換 <==けっきょく使うのこればっか --------------------- ありがとうございましたア〜〜〜 正規表現は理解できませんでしたが、 既知のスキル、以下のターミナルのemacs風操作と組み合わせて、所期の目的を素早く処理できるようになりましたっ 44さん、45さん感謝(o^∀^o) ----------------------------------- ctrl+←→ で一単語前後へ移動 文字列操作系 ctrl + w 直前の一単語を削除します。 ctrl + u (カーソルより前)の文字列を全て削除します。結構よく使います。 ctrl + k カーソルより後ろの文字列を全て削除します。 前に荒らしてたのに ぜんぜん気にせんど、真剣な質問したらちゃんと答えてくれる... ユニックス板vimスレは最高に素敵なスレです。こんなスレは他にありません >>43 一括削除は以下でできますよ :%s/|.\+|//g 16進数で有ることを特定するなら :%s/|#\x\+|//g >>51 荒らしたって認識してんのに態度を改めるわけでもなく またここに書き込むのかよ いい加減にしてくれ slackのvim-jpにお前専用の隔離チャンネル作ってもらえよ >>53 > 一括削除は以下でできますよ > :%s/|.\+|//g す...すごすぎます。自分のやりたいことを正規表現で表現?できるようになれるか わかんないけど、まずは これだけでも理解していきます...これで膨大なテキストを処理できます! > 16進数で有ることを特定するなら > :%s/|#\x\+|//g こんかいは 16進数で有ることを特定しなくても望みどおりになっているので。 ======================================= 引き方は:help :help参照、めちゃくちゃ大事 環境についても環境名で引けば大体環境毎のセットアップについても触れられてる事も覚えておいてね ヘルプは日本語版も非常に活発に更新されてて(既にvim9)、むしろ翻訳を介すだけ原文の分かりにくい部分に脚注が付いてて分かりやすいまである ================================= これを機に前スレを見直したが...ほとんど忘れてる上に...むずかしい! よくまあこんな難しいのについていったなと... >>52 > set -o vi とは何か不明で調査中 > 一括削除は以下でできますよ > :%s/|.\+|//g ------------------- こんなの独学でやったら1ヶ月はかかる。なぜならば、正規表現のページをググって片っ端から読んだが まったく理解できないからだ あなたは俺に1ヶ月分の時間をくれた。一ヶ月のいのちをくれたんだっ!! >>55 これ以上ここに書き込まない方がいいですよ お怒りの方が何人もいらっしゃるので slackにいらしてください 皆さんとても親切ですよ https://vim-jp.org/docs/chat.html https://vim-jp.slack.com/ vscodeのvimで 変換予測候補などもJKで上下選択したいんですがさすがに無理ですかね? VSCodeVimはVimと関係ないからVSCodeスレかVSCode拡張スレで聞くべき >>58 Ctrl+n,Ctrl+pのことではなくて?それならデフォルト機能だけど >>60 あああああそれです!ありがとうございます!これの時だけ矢印キーで移動してたので助かりました! スレ間違ってたらごめんなさい… fcitx5とvim8で協調モードできないですか? neovimなら方法があるんです テキストファイルを間違えて削除してしまいました。 Vimで編集していたファイルなのでUndoファイルは残っているのですが、 : rundo ファイル名 をやっても 「ファイルの内容が変わっているため、アンドゥ情報を利用できません」 と表示されてしまいます。これはもうダメなのでしょうか? >>64 .vimrc内をbackupdirで検索 そのフォルダが有ればファイルが残っている可能性もある なければあきらめる >>62 > fcitx5 はどこがfcitxよりよいのでしょうか? わからないので、またfcitxで困ることがなにもないので消しました... 主にvim-gtk3だからFCITX_NO_PREEDIT_APPSを設定しなくてもそのまま使えるからとスキンおおいね >>47 > 「sed」コマンドはあくまで文字列を置換して出力するのみで、実際のファイルの内容の書き換えは行いませんので注意しましょう。もし、置換した内容をテキストに保存したい場合はリダイレクト「>」を使用しましょう。 perl -i -p -e perlとsedの-iオプションは内部的に>>47 やってるだけのin-placeもどきだろ 事故りたくないなら素直にedかex -s(vi/vim)使えよ、vimスレなんだし exの正体がvimとは限らない環境なら ex -sc '%s/regex/replacement/g | wq' exの正体がvimでも、明示的にvimを呼んだ方が良い vim [opts] -c '%s/regex/replacement/g' -c 'wq' 無ければcommand not foundになる exだと他のvi系エディタがvim固有のコマンド(vimscriptや各モードのキーバインド)を変に解釈しかねないので、ex呼びより安全 オレオレな.vimrc/.exrcを読んでもいいし、人に配るシェルスクリプトなら[no]compatible指定、.*rc/プラグインを読まないで高速化&環境依存排除 全てコマンドラインオプションで選べるから、ちゃんと--helpと:help読め vimの本領はシェルからのワンライナーだよな :normalモードのコマンドとマクロ、レジスタ使えばperlなんかより断然短い :norm 5jwqdaw2jqq@wggp >>71 UNIX以外の環境で、正体がelvis / nvi / vim / neovim以外の環境って、どんなものがありますか vimの方言で挙動が変わるリスクを負うくらいなら素直にsed / perl使え UI立ち上げずにバッチ処理に使える高機能エディタって他にemacsくらいしかなくね?vim禁止だと一気に面倒くさくなる ストリーム処理で済むならストリームエディタでいいけど >>78 がどういう状況を具体的に想定しているか分からない むしろトラブってるときはvimが無い方が普通のような >>79 トラブルとか知らん、普通にテキスト処理の自動化 テキストオブジェクトを認識するだけで、perlみたいに難解な正規表現で対応する引用符や括弧探すとかアホらしい事やらんで済むだろ スクレイピングか そういうのはyi(で一発なvimの独断場だな ネストしてるとregexではかなり面倒 vimscriptが腐ってるしシェルスクリプトから呼べるのは有り難い --clean等でシンタックスやプラグイン読まなければ100msで起動するからワンショットには十分使える 大量のファイルを処理するならxargsで渡して:argdoだな プロセス起動がファイル数/引数上限で済む >>72 > 5jwqdaw2jqq@wggp これって何ですか 意味が解読できない。。 >>84 全部基本コマンドだと思うが… 一応 5行下って1単語進み、単語をカットして2行下る操作をqに記録し即再生、(無意味に)一単語進んでバッファの初めに戻りカットした単語を貼り付け qのマクロを活用してない(ループが完結してない)コード片だから、適当じゃね ごめん違う、本来に無意味 qdでdに記録始めてd使ってないし、次のq@wでまた謎のwを引用しようとしてるけど、q@がレジスタ名として多分不正だから無意味、最後のpはqのタイポ? やっぱマクロは闇だわ マクロの直打ちは辞めた方が… 実際にUI開いてqで記録、:regで中身を見て手直しするもの :helpにある再帰やループマクロのテンプレだけを知ってればよくて、あとはそこへそれを突っ込むだけだ neovim 0.6.1です。 一つ目のターミナルでファイルをviewで開き、 もう一つのターミナルで同じファイルを編集可で開いて編集した後に 一つ目にカーソルを戻すと2つ目のターミナルで編集した情報が自動で反映されるのをオフにしたいです。 set noautoread を入れたのですが、 W11 ファイルは編集開始後に変更されました というワーニングが出てくるようになりました。 このワーニングを出ないようにするにはどうすれば良いですか? FileChangedShellで何かすれば消えるっぽいから autocmd! FileChangedShell * echo “” とか >>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でプラグインなんて書き始めた奴らが諸悪の根源 >>47 ,70 (単純な)制御構造が必要か?が使い分けの目安 一応:t label(直近のs///で置換が行われればgoto)や:b label(goto)を駆使すれば:ifや:whileをエミュレートは可能だが 気が狂わんのか そもそも-iオプション付きのsedはストリーム処理である意味が無いから、ストリームの無駄使いでしかない論理的に誤った使い方 ポータビリティ云々を気にするなら、最低でもマルチライン処理とバッファリングをサポートしてるedを使え sedより高機能だし、patchコマンドもネイティブ入力フォーマットとして自動認識する(外部edを呼ぶか独自エミュレート) 機能というより、ストリーム処理とバッチ処理の区別がついてないんじゃないの holdバッファを駆使して高度な処理をやればやるだけ、行毎に再スキャンを繰り返すストリームエディタはCPUとメモリを急激に食い潰す 一度メモリに収めて終わりで済まないサイズならsplitで分けてマルチプロセッサを活用 小さくてもいいから一時ファイル専用のSSDが用意できればベスト ハードウェアを活用しろ >>89 >>91 view --servername #[デフォルト名view1]のようにエイリアス定義しておくとうっかり.swp増殖防止に役立つ viewは役割上シンタックスを沢山読む/カスタムしていると編集用vimの設定と衝突しそう 個人的には分けた方が良いと思う 体感一秒足らずだけどラグいのが一つと 明示的な--servername NAME指定無しの --remote* excmd/key/fileは自身のargv[0]を見てNAME1..を探すこと vimとして起動してviewモードに切り替えて使っているとプロセス名はvim1のようになる デフォルト機能で済む処理だから手の空いてる汎用vimという意図で無指定のコマンドを送ると、先のvim1(viewモード)プロセスに誤爆する たぶん サーバとして稼働できるようになって起動ラグ無し、履歴やレジスタも勝手に同期してくれて便利になった 一方で状態共有に特有の罠もある デフォルトのサーバ名はプレーンなvimとして呼ばれる想定で予約しておくべきか >>91 オプションreadonly, roはバッファローカル (変数参照式として&ro) >>90 対話モードでキープレスやechoでエコーエリアを上塗りクリアは禍根を残しそう :messや:redir先のファイルへ謎の改行が混入したり、デバッグレベル依存で止まったり とりあえず:silent!で黙殺するか、 :try | :call MyFileChangedShell | :catch /E11:/ | :set noro | :endtry こんな雰囲気で行けない?MyFileChangedShellやcatchの中は適当 遷移自体は済んでいるのか、フック用に~Pre/Post版があるか、など発動条件依存なのでヘルプ参照 >>89 です。レス遅くなりすみません。 皆さんご意見ありがとうございます。 どれも一長一短ありそうでなかなか根が深いですね。。 ひとまずいくつか試してみます。 ヴィムでマークダウンのプレビューとアウトライナー(ヘッダーの)ってありますかね? emacsでもいいです vscodeはテキストエディタ感がないので >>104 マークダウン向きではないエディタなんでしょうか Quiver、Bear、Inkdropみたいな操作性はVimのPluginでも無理 お金払ってそっちをつかえばいい >>105 プラグイン入れると一般的なブラウザでリアルタイムビューできる 良くできてると思う エディタはVimでVSCodeをMarkdownビューアにする手もあるかも VSCodeのMarkdownビューアも良くできてると思う VSCodeは嫌いで使ってないけど >>109 マルチプラットフォームのやつ探してるんですよ でもvscode開くのは気が重い、、、 >>112 vimでやるにはブラウザ開かないとイケない感じですか? マークダウンプレビューは諦めて、ヘッダーの色付けと(サイドバーに)アウトライナーだけ欲しいという場合はvimで可能でしょうか? markdownえでいたのobsidian癖が強すぎて諦めたところです(´・ω・`) >>112 nvimは凄いなぁ~ それはそうと 質問者はなぜ自分で調べようとしないのか? ある程度の知識があることを前提とした解説サイトが多いからです vimは玄人向けなので >>117 回答ありがとうございます obsidianでもそうですが、こういったものって初期フォルダが決まっていて、そこにファイルを作る感じですよね これがどうも馴染めなくて、おそらくですが、既存のファイルを読み込んだりできないんですよね vimはpluginをきちんと自分でなんとか出来るようにしないとそれからじゃない。 各OS対応でatomみたいにplugin関係無しでどこのファイルでも開けて、これ https://www.sublimetext.com/ >>120 sublimeは情報少なくて一度挫折したんですね アウトラインとマークダウンについて1度調べます >>121 どうも タイポらは有料化されたんですね ホローパッド調べてみます >>122 これまさに使ってます マークダウンはないけど、アウトラインが便利なんですよね wineでは動かなかった記憶です Linuxなら選択肢多いじゃん ReTextとか… もう完全スレチなのでここで終了ね といって、一般的なエディターのスレってないのな あれも使いにくい これも使いにくい 機能が気に入らない すみません、思い通りのものはなくて(´・ω・`) meryがlinuxとwinで動けば満足なんすけどね neovim+treesitter(色付け)+marksman(LSP)+lspsaga(LSPによる出力を格好良くする)でこんな感じ https://i.imgur.com/oueiEck.png もし英語で質問できるなら redditとか stackoverflowとか に書き込んでみるのも手かも 某スレでも、WindowsでMerry使っておけで終わったような… >>128 >>128 どうも アウトラインで階層の開閉もできたりしますか? vscodeとmery使いつつ、整備していこうかと 去年か一昨年も同じ質問してたよね Windows使えば解決なのにグチグチとLinuxガーWineでMeryガーって そうそう、絶対自分の環境と今にいたるまで、やった事をとか言わないんだよな 同じかぁ emacs で数式処理ソフトmaximaを使う機能として imaxima が知られてますが、 これのvim版は無いのでしょうか? >>135 なぜ検索しないのか ググれカス って言われないように アップデートしたらShift-Insでペーストできなくなった あれ、クリップボードから p でペーストできるようになった あ、でもミニバッファでインクリメンタルサーチするときに、Shift-Insでペーストできないと不便・・・ ターミナルや、ほかのアプリではShift-Insでペーストできるから、vim の問題だな chatgptが教えてくれたvim9fmtはvim 9.0で実装されたらしいのですが本当ですか? Windows の最新パッチあてたvimで 背景透過パッチ当たらなくなったわ 諦めるかな ポップアップウィンドウで開けるmattn/vim-molderくらいシンプルな ファイラプラグインがほしくなってきた 誰か一人くらいつくってるやろwって見たら意外と無いもんだな set wildoptions=pum で事足りてるよ俺は :e や :sp でタブキー押して選択は→押せば次のディレクトリ階層やファイルのポップアップメニューをポンポン出してくれるし 逆にnetrwで機能が物足りないってどんな機能なのか気になる vsplitで使ってるから分からんが、無数にあるpopup,preview...-windowの類がバッファを反映出来る限り、netrwが動かないなんて事は無いはずだが 勘違い、シンプルなのがいいのか netrwはシンプルとは程遠いよねごめん vim-lsp-settingsでnpmパッケージも管理してくれるようなのですが このプラグインのコマンドからインストールしたnpmパッケージのアップデートはどのように行うのでしょうか? >>148 ,>>145 ファイラとしての本質的な機能、(netrwという名の示唆する通り)対応プロトコルがリッチで邪魔という事は無いと思うから、高度なファイル表示、ソートや編集機能が不要という意味だと仮定するが デフォで上部にbanner(基本キーと機能)表示されるし初見で十分使えるだろう 極論を言えばvimコマンドも自由に使えるから何も知らなくても良いまである 基本キー覚えてお節介に感じたらlet g:netrw_menu = 0、g:netrw_banner = 0で切っとけばいい、ツリー表示も使わなければquickfixウィンドウにコンパクトに収まる つーか標準プラグインのnetrwで満足しないから訊いてるんじゃないの vim dir/:e dirで意図せずautoloadされる機会も多いし、vimを使ってる以上知らないという事も有り得ない :NetrwSettingsで設定メニューからカスタムも簡単だし、何が気に入らないのか分からんのは確かだけど 反応返って来ない以上、これ以上は不毛じゃね NVIM_APPNAME使えば使い分け捗りそう editorconfigよりNVIM_APPNAMEのほうが0.9の目玉な気がする vimで現在行のカーソルラインを出した状態でその行をターミナルで選択してコピーすると そのカーソルラインを出した行の最後に本来無いはずの空白がターミナルの幅で表示されてる分の空白が入ってしまいます カーソルラインを消すとこの問題は無くなるのですが、カーソルラインは出したいので他の方法で解決したいですかまchatGPTに聞いてもカーソル消せとか意味不明な回答しかもらえませんでした vim7.4を使用してます それ仕組み的に無理感があるな 右から左にドラッグすると解決したりしない? ターミナル上でやらずにクリップボード連携してvimでヤンクしたら カーソル位置を変えずに特定に行をコピーする方法はありますか? 例えばカーソル位置が1行目にある場合で20行目をコピーして1行目にペーストしたい場合 今行っている方法は、以下です。 - 20行下に移動(20g or 19j) - ヤンク - 20行上に移動(1g or gg or 19k) - ペースト 特定の行をコピーする方法はしらないけど、20行上に移動は C-o で代替できるよ :20y or :+19y :help :yank :help range >>158 :20t0 で1発だよ。 元のカーソル位置に戻りたかったら、 ma した後上のコマンド実行して `a とかすればいい。 サクラエディタかVSCodeしか使わないんだけどラズパイにsshした時とかvimを使ってる カーソル移動にhjklは使えない vimのスレで聞くの変かもしれないがおすすめのエディタある?俺みたいなのはGNU nanoでいいかなって 質問です どのくらいVimに慣れ親しんだらVimmerを名乗ってもいいと思いますか? 他のエディタで簡単に出来るよ、と言われた事を vim でそれ以下の打鍵数で実現出来た時。 vimを使うのが当たり前過ぎてvimmerの条件などという下らない疑問すら持たなくなったとき ネタにマウントしてしまうような人がVimmerに見えないのは確か 見栄を張り嘘をつき逃走までがテンプレのやつなんかほっとけ team のチャットでお仕事するようになったせいで、コマンドラインで、これを打て指示がGUIで同じ事するより楽になったわ。 vim もその延長でやると、感動される事もある。 最新のソースにkaoriyaさんのmigemoパッチ当ててたが ビルドは成功するができたvimが起動しない なぜ本家にパッチを投げないのか? 情熱が全然足りない! 実践Vimの本ってもう電子しか売らないのかな? 寝ながら読みたいのに 電子書籍パソコン以外だと小さいし読むまでが面倒 本は見やすいし好きなページ開くだけ Kindle Scribe を買ったら幸福になるかも >>180 すごい良さそうだけど高え これなら高い中古買う方が安上がり 教えてください。 vim-vsnipでLuaSnipみたいなAll(全FileTpe適用)設定できますか? 5chのjaneが作ったapiが無くなったら、KORIYAさんの作ったVim上で動く5chViewer動かないかな? vimerは凄い使いやすかったって評判だけは聞いてます >>183 読み込みだけならdatを引くだけなので簡単になるんでは ただしいつまでこの状態かはわからん >>184 github見てみます 更新でAPIの向き先をユーザの同意なしに変えるなんて、やる事が卑怯きわまりない やっぱオープンソースがいいなぁ read.cgi ver 08.0u [upliftProject] - 2023/07/09 Walang Kapalit ★ | uplift ★ 5ちゃんねる