-
UNIX
-
Vim Part31
-
UPLIFTで広告なしで体験しましょう!快適な閲覧ライフをお約束します!
Vim 6以降に関する話題です。
http://www.vim.org/
前スレ
Vim Part30
https://mevius.5ch.n...cgi/unix/1608261530/
関連情報は>>2-3あたり - コメントを投稿する
-
■ 入手場所関連
* 総合情報・スクリプト・Tips
http://www.vim.org/
* ソースコード他
https://github.com/vim/vim
* KaoriYa.net (Windows/Mac OS X バイナリ、掲示板)
http://www.kaoriya.net/
* Vim UTF-8 日本語版 - fudist
https://sites.google...Home/vim-nihongo-ban
■ Vimの情報ソース(国内)
* vim-jp >> Vimのユーザと開発者を結ぶコミュニティサイト
http://vim-jp.org/
■ プラグイン検索
* VimAwesome
http://vimawesome.com/
■ 関連ツール・ライブラリ
* libiconv (ソースコード)
http://www.gnu.org/software/libiconv/
* ctags (日本語対応版)
http://hp.vector.co.jp/authors/VA025040/
* C/Migemo
http://www.kaoriya.net/software/cmigemo/
neovim
https://neovim.io/
spacevim
https://github.com/SpaceVim/SpaceVim -
■ 過去ログ・関連スレ
- Part1 http://pc.2ch.net/te....cgi/unix/990764339/
- Part2 http://pc.2ch.net/te...cgi/unix/1006246205/
- Part3 http://pc.2ch.net/te...cgi/unix/1019011083/
- Part4 http://pc.2ch.net/te...cgi/unix/1034455617/
- Part5 http://pc.2ch.net/te...cgi/unix/1045365370/
- Part6 http://pc.2ch.net/te...cgi/unix/1058706125/
- Part7 http://pc.2ch.net/te...cgi/unix/1068963346/
- Part8 http://pc.2ch.net/te...cgi/unix/1073825479/
- Part9 http://pc5.2ch.net/t...cgi/unix/1086135625/
- Part10 http://pc5.2ch.net/t...cgi/unix/1096785924/
- Part11 http://pc8.2ch.net/t...cgi/unix/1110817975/
- Part12 http://pc8.2ch.net/t...cgi/unix/1132968803/
- Part13 http://pc11.2ch.net/...cgi/unix/1151423973/
- Part14 http://pc11.2ch.net/...cgi/unix/1174302567/
- Part15 http://pc11.2ch.net/...cgi/unix/1202050038/
- Part16 http://pc12.2ch.net/...cgi/unix/1232035011/
- Part17 http://hibari.2ch.ne...cgi/unix/1258278511/
- Part18 http://hibari.2ch.ne...cgi/unix/1284344926/
- Part19 http://hibari.2ch.ne...cgi/unix/1308288838/
- Part20 http://toro.2ch.net/...cgi/unix/1322212163/
- Part21 http://toro.2ch.net/...cgi/unix/1342368545/
- Part22 http://toro.2ch.net/...cgi/unix/1365071542/
- Part23 http://peace.2ch.net...cgi/unix/1393376019/
- Part24 http://peace.2ch.net...cgi/unix/1413122189/
- Part25 http://peace.2ch.net...cgi/unix/1427713482/
- Part25 http://peace.2ch.net...cgi/unix/1427713482/
- Part26 http://mevius.2ch.ne...cgi/unix/1455436351/
- Part27 http://mevius.5ch.ne...cgi/unix/1507038883/
- Part28 https://mevius.5ch.n...cgi/unix/1526552297/
- Part29 https://mevius.5ch.n...cgi/unix/1550073259/ -
テンプレ以上
-
いい人だ。乙
-
://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' を越えてぶら下げるか、前の文字と一緒に次の行にコミットさせる必要があります。
" 前の文字と一緒に次の行にコミットしなければなりません。
\ . ",)]}、〕〉》」』】?’”»"
\ . "ヽヾーァィゥェォッャュョヮヵヶゝゞぁぃぅぇぉっゃゅょゃゎ々"
\ . "‐"
\ . "?!"
\ . "・:;"
\ . "。." -
以上機械翻訳多用。
なんで一部の日本人しか使用しない日本語禁則処理の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 -
心に不具合がある人が居着いちゃったのかぁ ?
-
トラス氏、quitしてしまった模様
-
r;
-
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
で、一つずつは消せましたが、一括でぜんぶ消したいのです。 -
sed 使えば?
-
>>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 使えば?
ありがとう。使用したことないので、
https://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スレは最高に素敵なスレです。こんなスレは他にありません -
set -o vi は?
-
>>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 ファイル名
をやっても
「ファイルの内容が変わっているため、アンドゥ情報を利用できません」
と表示されてしまいます。これはもうダメなのでしょうか? -
wayland 対応の有無くらいだよ
-
主に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 -
このスレでのF9って何ですか?
https://www.google.c...AB%E3%83%83%E3%83%88
https://www.google.c...AB%E3%83%83%E3%83%88
とか見ても良く分からず。。
※最近のノートPCのファンクションキーの割当てがウザいので日本語入力ではCtrl-I / Ctrl-O / Ctrl-P多用中
※※個人の感想でふ -
>>71
UNIX以外の環境で、正体がelvis / nvi / vim / neovim以外の環境って、どんなものがありますか -
わりとどうでもいい話
-
vimの方言で挙動が変わるリスクを負うくらいなら素直にsed / perl使え
-
別にRubyでもPythonでもいいnだぜ
-
UI立ち上げずにバッチ処理に使える高機能エディタって他にemacsくらいしかなくね?vim禁止だと一気に面倒くさくなる
ストリーム処理で済むならストリームエディタでいいけど -
>>78がどういう状況を具体的に想定しているか分からない
むしろトラブってるときはvimが無い方が普通のような -
スクレイピングか
そういうのはyi(で一発なvimの独断場だな
ネストしてるとregexではかなり面倒 -
vimscriptが腐ってるしシェルスクリプトから呼べるのは有り難い
--clean等でシンタックスやプラグイン読まなければ100msで起動するからワンショットには十分使える -
大量のファイルを処理するならxargsで渡して:argdoだな
プロセス起動がファイル数/引数上限で済む -
>>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として呼ばれる想定で予約しておくべきか -
>>90
対話モードでキープレスやechoでエコーエリアを上塗りクリアは禍根を残しそう
:messや:redir先のファイルへ謎の改行が混入したり、デバッグレベル依存で止まったり
とりあえず:silent!で黙殺するか、
:try | :call MyFileChangedShell | :catch /E11:/ | :set noro | :endtry
こんな雰囲気で行けない?MyFileChangedShellやcatchの中は適当
遷移自体は済んでいるのか、フック用に~Pre/Post版があるか、など発動条件依存なのでヘルプ参照 -
いつまで偽物の Vim の話してんだよ
-
>>97
最初の質問とヘルプを読めよ
↑今すぐ読める無料コミック大量配信中!↑