Vim Part29
レス数が1000を超えています。これ以上書き込みはできません。
ctagsはUniversal Ctagsに変えましょう。
https://ctags.io 実践Vim中古で5000円越えかぁ…
正直出せるけど踏ん切りがつかない 2800で普通に新品で本屋で買えていたものが5000は嫌になるだろうな テキストオブジェクトで100行程度を一瞬で作ればイチコロよ
ソースは俺 実践Vim以外かー
んー強いて言うなら実践Vimかな
あーあと実践Vimも良いかも VimDocじゃ不足なのか?
jaも完訳されてるから今のところ不便してないが
実践と謡うからにはDocに載ってない実践ハック満載…というのならばならちょっと惹かれるが
VimScriptに関しての記述がリファレンスなのは、まあ不満 kindle版あるんだからそれ買えばええんやないの そもそもどうしてviが標準になったのかが分からん
皆プリインストールされてるから使ってるだけでしょ?
エディタ戦争って割には乱造されずに対戦相手はemacsだけみたいだし実に不思議
nano系統は同じ土俵にすら立てんのか なぜ標準になったとかどうでもいい
今現在自分にとって使いやすければそれでいい 非常に限定された環境でも動作する、が最大の要因だろな 元々一般向けじゃないのもあるが作法さえ知っていれば場所を選ばないってのが強み
要は紙と鉛筆最強説ってことだな
作法的には鉛筆より万年筆だけど愛好家や信奉者がいる点は変わらん kindleで実践Vimを持っている人はいますか? Vimコマンドラインで:versionと実行したときに
有効化されていない機能が警告色で強調されるようになってる。
すごい地味な変化だけどイイね! vscodeのvimエミュレーションで何とかなる事が多くなってきてしまった(´・ω・`) まあ正直欲しいのは「Vim」じゃなくて
「Vim並のカスタマイズ性」と
「シンタックスハイライトの種類の豊富さ」
「巨大ファイルの読み込み・立ち上がりの素早さ」
あたりなんだよね。 今月中に実践Vimの書籍版が見つからなかったら、潔くkindleと共に電子書籍版を購入することにします。
実践Vimを連呼して嘆いて申し訳ありませんでした。 プラグイン大量に入れてもどうせお前ら使いこなせてないだろ(経験談) 寧ろデフォで入ってるプラグインの機能すら碌に知らない。
zipが開けるのは知ってる。 fugitive.vimよりいいgit連携のエディタがないから、コミットするときだけはいまだにvimを使ってしまう vimのヘルプを漁るより誰かが拵えたプラグインを入れる方が楽だからね仕方ないね 自作コマンドの一覧やプラグイン一覧でも出せればいいのにな
bashのsetみたいにしろとは言わんから :commandで見れるけど
プラグインは自分で入れてるんだから自分で決めたディレクトリ見るだけだろ
パッケージマネージャ使ってるならだいたいvimrcに全部書いてある
標準プラグインは全部ヘルプページがある vim自体の性能は結構だけどIM周りがね・・・
解消するプラグインがあるのか丹精込めて設定書く必要あるのか知らんが 俺はiBusというコマンドで入力切り替えができるIMEをずっと使っているので
VimのC-[やC-oにフックを付けて日本語が無効になるようにしてる
でも面倒なことには変わりない。
そもそもVimの「モード」とIMEの「入力方式」の概念が重なっているせいもあると思う。
どっちも複数の状態にキーボードによる入力で移行する,っていう発想だからさ。 iBusは改悪だのでどこもボロクソだったけど直ったのかな
IMはずっとfcitx-mozcだから実態知らんけど >>43
なんか無能の謗りを受けてたね〜。
ただ俺は日本語キーボードを日本語環境のデスクトップで利用してるので
特段問題はなかったな。
あとIMの種類がSKKっていうのも大きいかも。 windows 版の GVIMを使ってますが
HTMLコーディング用のプラグインを入れたいのです。
GITを使わないといけないようですが。
そもそもコマンドプロンプトで
git のコマンドとか動くのですか?
GITを調べても、Linuxのシェルコマンドの説明はよくみるのですが。
GITを使わずWindowsでGVIMにプラグインを入れる方法はありますか? >>45
ウインドウズでももちろんコマンドラインの git は動くよ
Gitなしでvimのプラグインを導入する方法はあるけど、多くのプラグインのインストール方法がプラグインマネージャーによる管理を念頭においていることと、
そのプラグインマネージャーは結局裏でgitを使ってインストールやアップデートを行っているので、ないと苦労すると思う
https://git-scm.com/book/ja/v2/使い始める-Gitのインストール
これ読んでどれか入れればコマンドラインからもgitコマンド使えるようになると思う >>45
Vimのバージョンが8以降なら,
標準のプラグインマネージャを使って
gitなしでプラグイン管理ができる。 >>47
package機能のことを言ってるのか?
あれはプラグインを読み込む機能であって、ダウンロードとアップデートには他のツール(典型的にはgit)が必要だぞ http://vim.dev が Emacs の公式にリダイレクトされ、 http://emacs.dev が Vim の公式にリダイレクトされるという異常事態が発生している >>49
そもそもこの .dev サイトは何のサイトなの? >>46 >>47
ありがとうございます。 とりあえず[GIT Bash]というアプリをインストールして
WindowsでもGITコマンドを打てるようになりました。
また、vim-surround などをプラグインをダウンロードできました。
以下のディレクトリに入れただけなのですが
C:\Users\user\gvim\plugins\vim-surround-master
何かプラグインを有効化するコマンドなどが必要ですか?
GITをきちんと勉強した方がいいのはわかるのですが。。 >>51
おそらくリダイレクトを仕込むためだけにドメインが取得されたものと思われる
>>53
どっからそんなパスが出てきたの?
%homepath%\vimfiles\pack\plugins\start\vim-surround
上のようなディレクトリ構造にすれば起動時に読み込まれる。詳しくは :h packages
https://vim-jp.org/vimdoc-ja/repeat.html#packages
Git を直に叩く方法では特に各プラグインのアップデートが煩雑になるので、プラグイン管理プラグインの利用を勧める
GitHub で vim manager で検索してみよう git使いたくないならgithubからzipで落とせばいい >>55 >>56
ありがとうございます。
ディレクトリ構成をかえたら 多分インストールされたようです。
LOCAL ADDITIONS: *local-additions*
|autofmt.txt| Text Formatting Plugin
|surround.txt| Plugin for deleting, changing, and adding "surroundings"
たぶん。たぶん。
期待してたのと違うけど。。(DreamWeaverみたいな記述ができれば、、)
もう少し、vim manager を勉強してみます。
ありがとうございました。 kindle届いたのでVim tutorial終えてから実践Vim入れるぞ〜! 折角ヘルプがリンクになってるんだからPCでいいだろ
小説漫画以外をkindle端末で読むとか苦行だ シェルからvimのヘルプを直接開ければいいのにな
vimtutorがあるんだからvimhelpも用意してくれよ vim -f -c "help $1 | only"
みたいな内容のシェル関数を作れば実現できそうだけど
背後に無名のバッファが出来るのが嫌だな。
これを消しつつhelp画面だけを残す方法は俺には分からない。 >>63
これ:helpcloseとかやるとE444が発生するの嫌だな。 vimhelp(){ vim +":help ${1:+help}";}
vimの引数に+を入れるとコマンドが指定できるらしい
コマンド結果をvimで開くと端末からの入力云々が出るけどこれなら回避できそう >>65
それやってること>>63と全く同じでは。
-c "command"と+"command"って一緒のオプションだよ
https://vim-jp.org/vimdoc-ja/starting.html#-+c いや普通に>>63の書き方が分かりにくかったから
シェル関数まで完成させただけだが Vimは未だにイースターエッグとかが存在する珍しいソフト 他のエディタでも/で検索する癖付いたぞどうしてくれる vimキーバインドのプラグインのあるエディタは多いから別に困らん *.gz の圧縮されたファイルを開くと
勝手に展開後の状態で開いてしまうんだけど
これを元のままで開く方法は無いですか?
-b オプションでも駄目でした 今日初めてVimに触れてみたがこれを使いこなせてる人たち凄いな 慣れてくるとエディタ以外もvimキーバインドで操作しようとするようになる
それ位中毒性がある(´・ω・`) 初めての人は大抵そんなもんだよ。
でも結局慣れるとこの方が効率がいいから、
Emacsなんかを使ってる時ももどかしくなったりする。 キーリピートでちまちまカーソル動かすのは非効率的だから禁止したほうがいいよな
Excelとかもviキーバインドでやりたい EXCELをvimっぽく使えるというアドインがあったけどいまいちだったな edも使いこなせるようになるかと思ったら別にそんなことはなかったぜ こんにちは タイプしたコマンドを消さないで表示しておく :set showcmdというのがあるみたいんだですが
設定しても普通にyyの2つ目のyとか どしどし消えていってしまう
こういうのは動かななければ使用できる希望はないですよね 多分,コピペじゃなくて,「頭がおかしい人を演じてるつもり」なんだろうね。
名前欄に「sage」って書いちゃうのも典型的な馬鹿のすることだし。 ツイッターやネットでテクノロジー犯罪と検索して、まじでやばいことを四代目澄田会の幹部がやってる(アメリカではMKウルトラ計画)
被害者に対して暴力団以外にタゲそらしをしてるがやってるのは暴力団で普段外に出ることが少ないため遊びで公共の電波と同じような電波を使って殺人をしてる
統失はほとんどが作られた病気で実際は電波によって音声送信や思考盗聴ができることが最近明らかになりつつある
警察や病院では病気としてマニュアル化されてしまっているのが現状で被害者は泣き寝入りしてる
被害者がリアルタイムで多い現状を知って、被害者間でしか本当の事だと認知できていない
実際にできると思われていない事だから、ただの幻聴ではない実際に頭の中で会話ができる
できないことだと思われているからこそ真面目に被害を訴えてる
海外でも周知されつつあることを知ってほしい。
このままだとどんどん被害が広がる一方
#テクノロジー犯罪
#四代目澄田会
#拡散希望
[参考]
https://black.ap.teacup.com/yamisiougn01/6.html
https://tekunoroji-hanzaihigai.jimdo.com
https://blogs.yahoo.co.jp/patentcom
https://twitter.com/eiko123223/status/892399688233525249
https://twitter.com/celesty_cs 👀
Rock54: Caution(BBR-MD5:f70dfdc711a7c6ae6accccb939f27fbf)
https://twitter.com/5chan_nel (5ch newer account) DVORAK配列の人、使い勝手はどうなん
hjklで移動してる? hljkを使うかと言われればyes
移動してるかと言われればno もうQWERTで覚えちゃったから覚え直す気は無いけど、
DVORAKの方が配置が理にかなってる気がするから覚えやすそう。
10年前の自分が目の前に居たらDVORAKで覚えろってアドバイスしちゃうかもしれない。
だけどDVORAKで覚えると仕事でQWERTのキーボード使わないといけないときに苦労しそうだけどみんなどうしてるの?
あとDVORAKの人はやっぱりvimのキーバインドは変えて使ってるの? いくら実用的でもマイナーだと苦労しそうだね
QWERTY使えませんだと情けないもの >>87 どうもー
カーソル移動もマッピングして使っている感じかな
自分はこのままQWERTYでいい気がして来た マッピングなんてしてないよ
hljkなんて慣れたらなんでもないでしょ
「:」の位置が面倒くさいところにあるなあくらいしか感想はないよ ?????? ???????????? ?????????? ???? ?????????? ???????? ???????? ?????????????????? ???????? ?????????? ???????? ???????????? ???????? ???? ???????????? ???? ???????? ????????????????. Vimで略語展開を行うトリガーを
空白や記号の入力によってではなくCtrl+]を送信したとき「だけ」にする方法ありませんか。 毎日メルカリやオークションサイトで実践Vimの書籍を探っているが未だに見つからない >>95
例えばsynIDでカーソル下のシンタックスが*string*とか*comment*を含んでいたら
(事前に定義しておいた辞書なんかから)略語展開する語を定義する,っていう関数なんかを作って
それをautocommandで入力の度に実行するとかどうだろう。
動作が重くなりそうだし,なにより具体的なコードが思いつかんのでアレだが。 そろそろ自作コマンドデビューしたいけど簡単なのないですかね vimでC#コードリーディングやりたくて色々漁ってる中で
taglist.vimって素敵なプラグイン見つけました。
が、これってctagsのタグファイルしか見てくれないので
gtagsのタグファイル読んでくれる版さがしてます。
Ex(略 ctagsでC#対応してくれれば良いのですが…
どなたか良さげなプラグイン知りませんか? >>102
Universal Ctags でググれ。C# 対応してる。 >>103
Universalとかあったんですね
ExburantでもC#は対応してるようです
ただgtags.vimで使えた参照先一覧が無いんですよね…
とりあえずUniversalとgtags併用してみます
ありがとうございます 常に set exrc してますって人いる?
set secure してたとしてもownerが同じなら意味ないってことは、OSSをcloneしてくるなんて普通にあるんだから危険なんじゃと思ってるんだけど理解合ってるかな? Ctrl+N, Ctrl+P とかでできる補完を前の単語ベースでできる機能ってありますか?
int hoge;
という並びがすでにバッファにある状態で
int
とスペース入力したらその次に h を入力しなくても int を見て hoge が補完できるようなイメージです。
emacs の dabbrev はこうなるんですが、 vim でも同じことがしたいです。 ここの連中ってvimは常用するのが常識?
日本語が有効な状態でも入力する方法があるのなら是非とも知りたい ノーマルモードでは当然日本語入力はオフまたは英字入力モードにしているが。 IMEの自動切り替えについて検索するといいかも
どのOSでも動くIMEのプラグインとかあったっけ escでesc + IMオフになるような設定はしてるけど
基本的には普通にオンオフ切り替えて使うだけじゃないのか IMの切り替え自体が手間って話では
日本語入力とモードの相性の悪さは散々出てるしな vimの初見殺しは保存よりコピペの不備だと思う
そのままだとvim内外でのコピペにも事欠くなんて最高よ
日本語が操作の邪魔をして呆れるのはその後だな 呆れるべきはこのスレのレベルの低さだわ
いつからこんな低レベルになったんだ Vimの「~」チルダキーによる大文字・小文字の切り替えを,
全角英字にも対応させたいのですが,ソースコードを弄ることなく設定できますかね。 windowsのgvim、なんかUTF16LEとBEの判定が怪しいなぁ >>110
マルチプラットフォームの為に vim skk 覚えた
ついでにemacs も ddskk
>>86
DVORAKJP 使って基本的には問題がないが、
vim のプラグインや emacs に入れられる elisp がqwerty 配列で最適化されているのが
気になった
自分で環境組んでいく分には問題がないが、まわりは qwerty 配列でリリース coc.nvimめっちゃ注目されてるな
これまでWindowsだけはneocompleteが手放せなかったんだけど試してみようかな
良さげなら全環境で導入して使い勝手を統一したい pyenvでminicondaの2と3を入れてvim8をビルドしたんですが
:py3 print(sys.version) するとlibpython3.6m.a がないと怒られます
set pythonthreedll=〜で指定すればいけるけどスマートじゃないので
なんとかビルド時に認識させたいんですが良い方法ないですかね?
-rpathの指定は効果なしでした >>122ですがvim8捨ててneovimに乗り換えました
もっと早くそうしてればよかった coc.nvim入れてみたけど、最近vscodeやpycharmばかり使ってたから、インストール自体が面倒くさく感じるようになってしまった(´・ω・`) 補完プラグインはdeoplete使ってるけどcocのメリットは何? LSPクライアント内蔵だからそのためのプラグインを選ばなくて済むとか
コマンド一発で誰かが提供してるextensionをインストールしてソースに対応する仕組みとか yarn入れてくれないとイヤーんとか言われたから
そこから進んでない cocはdeoplete、ale及び外部ソフトのlinter,formatterがひとまとめになった感じかな >>121だけど結局のところWindows版の(g)vimからpynvimがろくに動かないのが問題だったので
なんとかneovimに移行して統一感を出すことができた。coc.nvimは使わないことにした
Gonvimとneovim-remoteを導入して、AutoHotkeyでgvimの--remote-tabを再現する感じで落ち着いた
Gonvimは日本語使いにとっては素晴らしいものだけど、フォントサイズに10.5ptが使えたら最高だったかな
板違いな話ですまん neobundle.vim
vimdoc-ja
auto-save
vim-sensible
vim-surround
vsession
大して使わんから少なかったわ
闇雲にプラグイン突っ込んでもどうせ持て余すしな
Ctrl-aやxの加減算で桁を無視する方法ってある?
どの位置でも0-9しか増減しない感じの 内部バッファを常にタブに表示する制限ってかけられないかなぁ?
:nと:bnと:tabnの使い分けが面倒なんだよね >>130
ヴィジュアル選択すると選択範囲内の加減算ができるので
一文字選択すれば一回だけできる >>133
01
02
03
ver古いからか範囲選択しても加減算機能しなかった
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:42:42)
適用済パッチ: 1-52
追加拡張パッチ: 8.0.0056 >>134
バージョン書かずにすみませんでした。
こちらは8.1.1140
ヘルプにも書いてあるので8からの機能かも ranger入れたら捗るかと思ったら別にそんなことはなかったぜ solarizedとか有名所のカラースキームを試してみたけど、どれも薄暗いのばかりで馴染めない
背景色と文字色のコントラスト差を小さくすることで目の負担を軽減って理屈なんだろうけど
やりすぎると逆に見にくくて疲れてくるんじゃないの 背景色を調整するくらいなら簡単でしょ
お好みのカラースキームにColorSchemeイベントで処理すればいい ダーク系はコメント文をやたら薄く見づらくしてるのが多いからコメント文は色変える なんであんなに暗くするんだろうな
もう色彩感覚が違うとしか思えない 誰も強制しているわけではない。
嫌なら使わなければよい。 コメントがそれほど重要じゃなくなってきている,というのもあるんだろうな。
重大な変更点はVCSのコミットメッセージなどで残せばいい。
ライセンスはソースコード内ではなく別個のファイルとして独立させればいい。
↑こういう考え方。
俺自身はあまり馴染めないんだが
(一つのファイルにそのファイルに関連する事柄が全て載っていて欲しい)
OSSだけでなく業務でもそういう立場に立ったコーディング規約を多く見掛けるようになった。 変更履歴はgitとかでいいけどなぜそんな計算をするのか自明でない場合はコメント付けてほしい
適度な粒度の関数に分けても数学や物理の専門知識を要するコードだと説明が必須のものは存在する コメントがそれほど重視されないってすごい時代だ
昔じゃ考えられない vimのカラースキームでフルカラーに対応してる奴ってあるのかね フルカラーって何?
True Color(24bit色)のことならとっくにしてるけど あ、そういうカラースキームがあるかという話ですか、すいません
どうなんでしょ >>145
昔はgitとか便利な管理システムが個人で使えなかったからね…
効率悪くても変更箇所とかを全部コメントとして記述しなくちゃならなかった。 vimも標準でgitとの連携機能つけてほしいな
今どきgit使うのは当たり前の前提なんだから(´・ω・`) >>150
なんでもかんでも「標準」にしたがるのはどうかと。
ていうかPython側がその内gitに対応しそうっていう状況だから
pythonプラグインに任せればいい。 その目的であればgitが最適。もはやコメントだけに頼るべきではない。 gitは慣れないとコミットし忘れて気付いた時に複数ネタをまとめてコミットしてしまってコミットメッセージを見ても何のことか分かりにくくなってしまうんだよな 自分が分かれば良いやと思って書いたコメントは
大抵自分で意味わからなくなる gitはサーバーそこそこ早いし
階層見れるの便利だから
ただのアップローダーとして使っている俺笑 要点だけ書けばいいだろ
いちいちコメント残してらんない 難解な数学的処理が入るようなプログラムでどれだけ綺麗なソースでも長々とした説明がなければ理解不可能な場合ってコメント以外に適切な方法ある?
別ファイルに丁寧に書きたいところだけど別ファイルの存在を忘れてソースの修正に追随しなくなるリスクとかもあるし 使用したアルゴリズムか定理等の簡単な説明と
入力値を定数で表した場合に結果がこの式(値)
になればいいって20行以内で示して
下に挙動中心にプログラムの要約の擬似コードを
texで書いて差し上げればいいだろ readme.texとか
texとか慣れてないならreadme.jpgとかpdfとかあるだろ。
コメントとかtxt(doc)でそもそも単純な文字列で
無理やり書こうとするのが間違いなんだよ お前らってこんなにも無知だったのか?
オラがっかりだぞ splitしたときに:qで閉じると画面分割が崩れるのを防ぐために
nnoremap <Leader>q :bdelete<CR>
としています
同じコマンドで、最後のバッファを閉じるときだけは
通常の:qの動作をさせるにはどうしたらいいですか? 画面分割が崩れるってのがわからん
どっちつかってもウィンドウは同じように消える mksで保存したセッションファイルを開くとnerdtreeの画面分割がおかしくなることはよくある すみません自分で勘違いしてました
'qpkorr/vim-bufkill' を導入して、:BDというのを入れてました
そうすると:splitで2画面に分割して、上でFile A、下でFile Bを編集しているときに
File Bだけ:BDで閉じれば画面分割は解消されずにFile Bだけ閉じれます
これが便利なのでいつも:BDでファイルを閉じるようしています
が、分割していなくて1ファイルしか開いていないときに
:BDすると、no nameなファイルを編集している状態になってしまって
vimが終了できないのです (当たり前ですが)
ということで
2バッファ以上存在するとき→nnoremap <Leader>q :BD<CR>
1バッファしか存在しないとき→nnoremap <Leader>q :q<CR>
という場合分けマッピングがしたい、というのが主旨でした
そういう場合分けマッピングってできますか? バッファ数カウントして実行するコマンド変える関数作れば良いんでね? tabpagebuflist()でバッファリストが返ってくるから後はお好きに なるほど、なんとなく方針わかってきました
tabpagebuflist()は表示しているバッファしか返してくれないみたいで
いまいち想定通りの動きをしてくれなかったです
純粋に:lsで表示されるバッファの数ってどうやって数えるのでしょうか シェルコマンドの結果をバッファに表示できません?
ブレース展開したりdateを挿入したいんですが >>171
:r! date
:r! printf "%s\n" foo{01..10}
:r!の後にコマンドを指定するとカーソル位置に挿入できる
ビックリなしの:rだとファイルを挿入する 予め文字をヤンクしてから文字を消すとそれでレジスタが上書きされるけど対策ない?
当たり前のこともお膳立てしないとできない子って悲しい >>174
わかる。0レジスタにたまに残ってない?とりあえず:reg実行して確認してる。 xとかdは削除じゃなくて切り取りしてるんだから当たり前の挙動 文字を消すとって一瞬何言ってんのかと思ったらxやdのことだったのか 入力もできねぇ→終了もできねぇ→クリップボードも使ねぇ→レジスタ上書きされてコピペもできねぇ
vimの登竜門定期 操作覚えられないならとりあえずinsertにしてbsで消せばよろし なるほどvimはunix哲学だからレジスタから削除したり経由しないための作法が必要な訳か
徹底してるんだな レジスタに残ってる方が安心感あるからヤンクしたら”0p Linuxの保守を1年やってました、という若者が、i押した後にカーソルキーとDELキーでテキストを編集してるのを見て頭に来たので、一発殴り倒してから髪の毛を掴んで床を引きずり回したあと、vimtutorを起動した端末と一緒に座敷牢に3日閉じこめておいたら、ようやくカーソルキーを使わずに編集ができるようになって出てきた >>186
もっと調教日誌をくわしく (*´д`*)ハァハァ カーソルキー使おうとするとカーソルキーがない場合を想定しろって癇癪起こす子たまにいるよね vscode onlineでvimのメリットであったサーバ側での使用もあまりなくなってきたな(´・ω・`) exコマンドをちゃちゃちゃっと書いて、yy→@"で実行とか眼から鱗だわ >>193
Visual Studio OnlineはMicrosoftのサーバにあるんじゃないの?
自分のサーバには無いんだからVimの代わりにはならないと思うけど
Coderなら代わりになるか edとexってひょっとして細部で違うのか
対話型sedを探してたらedを見つけてvmにもないかと思ったらexに辿り着いたけど,pで全行表示できなくてあれ?って
exの方がedより後発なんだよな? neovimでneovim-remoteっていうプラグインをよく使ってるんだけど、これはサーバ機能を使ってるっぽい。
neovim内でターミナルを使っているときにカレントディレクトリにあるファイルを今使っているneovimで開きたい時に便利。 vimに前回の起動位置を記憶させてるけど事前に位置を指定してから起動ってできる?
vim開いてから検索するの面倒なんで検索してから開けないかと vim +行数 → 起動時に指定行にカーソル移動
vim +/文字 → 起動時に文字で検索 >>191
冗談として成立していないってことでしょ $ vim +/検索文字列
↑マジかよVimなんでもできるなw $ vim +:"r! date"
やっつけで日付挿入してから開いたり
$ vim +":help i"
シェルから直接vimのヘルプを開いたり
後者はコマンドにしとくとヘルプ検索が捗る 挿入モードかつIMが有効な状態でアンドゥする方法ってあんの? >>216
試してないけど
map c-u u
しといて
入力中に c-o c-u でてきない? 日本語有効でも一応alt+uでアンドゥはできる
ノーマルモードに戻る上に入力状態は日本語のままだから手間はお察しだが exって日本語入力できないのな
全角文字が化けるみたい
vimやedではできたのに >>219
edはVimが提供していないけど,exはVimが提供しているコマンドだな。
で,何が言いたいかというとexはedと違って 入力にGNU readlineを使っていない筈。
だからexはVimのvi互換モードが有効な状態で入力読み取り機構が働いているのではないか
……と予想。 Vimを触り始めた者ですが、vimtutorを終えるのに5時間かかりました。
最初の説明では目安25〜30分と記されていたのに…w >>221
終えるまでしっかりできたならきっともう心配ないよ
大体は途中で投げるかそもそもtutorの存在すら知らないのも多いと思う >>222
ありがとうございます。
常用エディタとして使えるように励みます! >>221
twitterでVimエゴサしたらvimtutorに5時間掛かった人が見つかったよ。kensuke君か? >>224
エゴサってことはあんたがそのkensuke君なのか 特定しないでくださいww
安易にSNSに書き込んだ僕が悪いのですが…w 太田 健介 (kensuke)
1996年1月22日生まれ(23歳)
愛知県刈谷市在住
Vim警察が家まで押しかけてきてどのプラグインをインストールしているか捜索されてしまうぞ k君、こんなとこに来るのはやめて、slackのvim-jpに入るといいよ。みんないい人だよ。 >>232
そんなこと書くと「こんなとこ」の人がきちゃうかもしれないねw >>230
押しかけてとか言っちゃってるし、これ脅迫罪じゃね? そのkensukeとTwitterで「vimtutorに5時間掛かった」って言ってるkensuke11021618とは別人だと思うんだけど aaa-foo
bbb-bar
↓
aaa-001_foo
bbb-002_bar
範囲選択した行の指定位置に連番入れる方法ある?
行頭や行末にも入れたいんだけど >>242
連判だとマクロがいいのかな?
C-aでインクリメントしてヤンクしてから次の行に移ってペーストとか? 固定文字列ならビジュアルモードからIだろうけど
連番だとマクロやfunction作るのが手っ取り早いかと 最近Vim自身に連番機能ついたような
まぁ自分はプラグイン使ってるけど >>242
範囲選択してコマンドモードで
:'<,'>s/\v^(\w{3}-)(.*)/\=printf('%s%03d_%s', submatch(1), line('.')-5, submatch(2))
で、できまーす
printfだから連番の挿入場所も連番の桁数も自由自在
ちなみに連番の初めの数字はline('.')-5で調整する、line('.')は現在の行数が入るから
aaa-foo が6行目にあると仮定して、連番が1から始まるように-5としている 矩形選択で全行に000_を挿入したあと矩形選択で全000を選択してg<C-a>でいいんじゃね >>249
おーこれすげぇな
もうExcelにコピペして右下つまんで下にドラッグする必要ないなw >>249
おぉ、出来た!
>248もこんなのも出来るんだって感心したけど
シンプルさで>249のインパクトが勝った
242じゃないけど勉強になったよ
両名ともありがとう ExcelじゃなくてGoogleスプレッドシートならarrayformulaで一気に連番できる >>249
vimが古くてできなかった悲しみ
れ、連番の新規作成ならseqがあるし >>253
OS分からんけど、FlatpakやLinuxbrewやGuix等で既存のVimとは別に新しいVim入れられるんじゃね function! SearchTest()
execute '/hoge'
endfunction
command! S1 call SearchTest()
こんなスクリプトをsourceで呼んだ後、
:S1 でhoge が検索されると思うんだけど、
n キーで次のhogeを探しに行くようにするには
どうしたら?
純粋にコマンドとして検索した文字列を見に行っちゃう。。。
こんな感じのvim上のコマンドとスクリプトの
境界が分かりやすく説明してあるページあるかな?
もしくはhelpでも。
vim-script 〜でググってもvimのコマンドの答えしか
探せなくて萎える時が多々あります。 >>255
let @/ = ′hoge′
でいけないかな? レジスタに値をセットするのも手だけど、他にもっといい手はないんだろうかね
:execute 以外の検索だとレジスタまで更新してくれたりしないんだろうか
Vim script でそんな検索をしたいと思ったことがないのでよく分からん >>256
おぉ、出来た!ありがとう!
しかし、「最終検索パターン用レジスタ」とか素人には
検索ワードとして思いつかないなぁ…
https://vim-jp.org/vimdoc-ja/change.html#quote_/ >>258
っ「実践 Vim」
各レジスタの説明も載っている (/レジスタについてはほんの少しだけ)
Vim は機能がありすぎて普通に使っていても知らない機能が多々あるから少しずつ覚えていくんや >>258
よかったよかった
自分もそんなワードでググって見つけるのは無理ぽ
検索ワードセットしたい→そういや <C-r>/ で検索ワードとれるな、あれどこに入ってるんだろ→ :h <C-r>
って感じだわ 実践Vimの書籍は本当に手に入れてみたい1品や…
5000円くらいなら手出せるんだがなぁ… Kindle版買えばいいじゃん書籍にこだわる意味あんの?
オレなんか自分で自炊したんだぜ?w
自炊のために書籍はバラバラのポイってなもんよw Kindleは持っているんですが、PCのディスプレイを見ながらkindleのディスプレイを見ながら…ということをすると目が痛くなるんですよね… kindke端末で見るものではない
せっかくリンクあるんだからPCで読め 絶版本がないとろくに使えないエディタとかまさに骨董品 >>260
おじいちゃん、今朝もパッチあてたでしょ!! みんなパッチとか結構当ててるの?
リポジトリに8.1無かったから、8.1buildインスコした時に
1-1032まで適用されてた版らしいけどその後なんか変わった? >>274
今は 8.1.1462 が最新やね
ここにいる人は毎日ビルドしてたりするんじゃないの?知らんけど バイナリ読み込んだ時に非表示文字を検索したいんだけど、
/\%0d とかだとパターンが見つからないと怒られます。
他にコードで検索する方法あります? Vinariseなるプラグイン見つけた。
これでいいや。ってか凄いなコレw >>279
マジか
カッケーな
バージョンアップするわ >>280
pull してbuildしたら 1523になった。安全安心。 :set nomodeline してるので古いバージョン使ってても安心や :diffsplit 機能便利だわ
mklink vimdiff.exe gvim.exe
ってリンク作ると、ちゃんとdiffモードで起動するんだね 標準入力の内容をVimで実行して結果を標準出力に返すシェルスクリプトって作れる?
例えばこんなことがしたい。
$ vimrun 'echo 3+3'
6
$ vimrun 'if has('lambda')| let F = {arg1, arg2 -> arg1 + arg2}| echo F(2,3)| endif'
5
みたいな。 >>284
ttps://qiita.com/watiko/items/3ce5086c0defc0c148bf >>285
ありがとう。
でも標準入力からは読み取れないみたいね。残念。 やっと>>219解決できたわ
exじゃなくてvim -Eで起動するんだとさ
改良版exモードでこれなら日本語も無問題だった
eximでも起動できるらしいがそっちは入ってなかった >>287
ただの興味本位で訊くけど
なんでexを使いたいの?
ラインエディタならedでいいし
高機能ならVimのほうが使い勝手がはるかに上だと思うんだけど 新ダンジョンで聖王と魔王の記憶の追体験があるんだろ多分 >>288
ただの好奇心なんで気にしなくていいよ
新幹線好きの現代っ子だってSLにも興味くらい持つもんだ >>291
懐かしい文字列が目に入ったので久々にインストールしてみた
相変わらずのSLだった
ありがとう $ lmc
みたいなコマンドを妄想した。
リニアモーターカーのAAがすさまじい速度で端末を駆け抜ける >>255
emacs occur moccur のうち
前者は確か組み込みで実現されてて
後者はプラグインが github にあったはず >>242
perl が使えるなら覚えること少ないよ
正規表現も保守性保って記録でいるから
q: 等履歴参照から再使用しやすい
'<,'>perldo s{ ( .{4} ) }{ sprintf("%s%03d", $1, ++$i) }ex
$i がインクリメントされていくから使い捨て perl のワンライナーがvimでも便利
こんなデータがあるとして 摂氏と華氏を変えたくても
1行で済む
https://i.imgur.com/layV4I0.jpg
時刻や天気や湿度に全く影響を与えず
温度だけを対象に型崩れなく仕上がる
x オプションがあるから いちおう perl 解説
x オプション
マッチの部分で空白無視
正規表現の最小単位で区切ることで保守性が高まる
e オプション e オプション
置換部分を perl コードとして扱う うっかりvimの検索でperlが使えるようにならないかな
一々括弧をエスケープするのイクナイ >>296
名前からしてemacsのpluginっぽいけどvimのpluginなん? >>301
\v デフォルトでオンにしてるけど癖あるからperlの使いたい気持ちもわからんじゃない
.*? みたいな最短マッチのやり方をいつも忘れてしまう >>303
vimだと Github の thinca/vim-qfreplace
だった気がする たまに履歴が分散するんだけど何が原因だろ
.iminfo.tmpが作られてなぜかカレントの履歴がそっちに移動してる
同時に空ファイルのviminfu.tmpやviminfv.tmpも作られてる
vimの強制終了が原因じゃないようだしよく分からん
さっきも.iminfoとtmpをマージしてきた
正規表現に方言があるってvimで知ったなぁ(遠い目) >>305
デフォルトでオンにする設定なんてあるんだね >>307
結構長いことVimを使ってるけどそんな状況に遭遇したことないな。
あまり力にはなれそうにないけど
:set viminfo?
と
:set viminfofile?
の結果を教えてくれるか。 >>308
:set viminfo?
viminfo=!,'100,<50,s10,h,n~/.viminfo
:set viminfofile?は未知のオプション
~/.viminfoにはset viminfo+=n~/.viminfo
どうもvimが古いみたいだ
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:42:42)
適用済パッチ: 1-52
追加拡張パッチ: 8.0.0056 >>308
/押したときに/\vと入力されるようにマッピングするだけでは NeoVimは2017くらいに盛り上がってきりだな
やっぱりVimに舞い戻ってる人が多い印象。 virtual textやfloating windowとかvimが後追いで作ってる物がある 機能は後追いでも Neovim の実装をパクってる訳じゃないよ
Neovim は Vim のパッチをパクるけどね 完全フリーのものをパクろうがどうでもいい
そのソフトウェアの向上になるならば むしろ車輪の再発明こそ悪
でも先行品の品質とか設計が自分のプロジェクトの基準に合わないなら書き直しも已む無し OSSがさもパクリじゃないかの言い方はNG
この界隈で最も厄介なのは常に玉石混交故に迷子になること
何がいいか一通り試して見極めろとか冗談 玉石混交なんて当たり前だろ
何でお前のために選り分けてやらなきゃならないんだよ >>317-322
完全にゼロから創造し、更に改良するなんて荒業が出来るようになれなどと我々日本人のOS(古事記)には組み込まれてない。
~が創造し生み落とし与えられた物を、メンテナンスし使いやすくしなさいというのが修理固成(つくりかためなせ)という古事記の有難い教えがあるように、物作りの精神を忘れてはならない。 >>322
仰る通りですな。
既にあるものを取捨選択し、使えそうなモノを採用し改良を加えていくようにと古事記にもそう書かれてます。
そういう意味ではneovimは日本人には最適なテキストエディタではないでしょうか。 この界隈は改造好きの成れの果てなんだから意見しても癇癪起こすだけだぞ
業界自体が標準のなさを美徳としている以上対立してみせても無駄
お仕着せの窓林檎と放任主義のペンギンと両極端でもそれ以外ないんだからアキラメロン そこでAndroidという救世主が現れただろ。
(;´_ゝ`) vim-airlineみたいにActive/Inactiveでstatuslineの内容変えたいのだけど
属性変えるStatuLineNCみたいなのって無いようです。
どんな手段がありますでしょうか? lightlineはアクティブと非アクティブウィンドウで違うもの表示できるけど StatuLineNCはstatus line in non-current-windowを指定するので結局Act/Inactを切り替えられるのでは。 >>335
plugin無しでvimrcに記述するだけで似たようなの再現できないかなと思いました。
>>336
set statusline=%1*[NORMAL]%*
これの非アクティブWindow版は無いかな?と言うことなのです。
やっぱ自前で非アクティブのだけ手で更新してるんですかね… >>337
vim scriptで書かれたプラグインで出来てるならそこを読めばいいだけ >>338
airlineだと複雑だったのでlightlineを参考にしたら解決しました。
setwinvarを使うようですね。
WinLeaveイベントに仕込んでも行けそうです。 ivim冷やかし半分で入れてみたら
案外面白くて
軽くggってもqiitaの軽いもんしかなくてさ 過去のレスにもあったけどさ
欲しいのはVimそのものというよりVimのインターフェースだから
例えば↓
https://qiita.com/kedama17/items/bb1455464f47259c9f02
こんな感じ(ていうかこの記事はほとんど何も言ってないけど…)で
「Vim第1水準」→移動系キーバインド対応・テキストオブジェクト対応
「Vim第2水準」→mapコマンド対応
↓以下続く
みたいに「ああ,このVim風の拡張機能はこういうインターフェースで使えるんだな」というのを把握できたら嬉しいな。 キーバインドはたいていプラグインがあるしあんまりvimに近いとvimでよくなる
いい感じのGUIが欲しいならOnivimみたいにneovimのGUIを実装したほうが良さそう いや実装というか規格が欲しいという話っす。
まあ妄言なんでそんなに気にせず……。
ところでOnivimを使ってみようとDebian sidに入れてみたけど
ファイルのツリー表示こそされるものの編集画面が真っ暗w 規格かー面白いかもね
ここ最近しょうがなくvim触りだしたけど
テキストエディタという、ひと塊りだったツール認識が
いい意味で壊されたわ
拡大解釈すると
スマートフォンのスワイプで文章閲覧して
必要に応じタップして編集
のスタイルに近しいね
現行のテキストエディタって編集→編集→編集っていうのが前提で
閲覧もあくまで編集の枠にはいるというか、、、
プロダクトデザイン的に日本のテレビリモコンがボタンの多さで揶揄されることがあるけど
それをソフトウェア的に上手くフォローしているというか、、、
規格にすることで
ソフト的にもハード的にもUIデザインの進化や再解釈ができるのでは?と🤔
チラ裏すまん >>349
えへ
えへへへへ、、、
ありがと//// Onivimの最新版は有料なのか……まあ仕方無いね。
Vim使うはww クリップボードを有効にしたVimで
sコマンドによる削除がクリップボードに移ってしまうのを防ぐにはどうすればいいですか。 有効とか無効とかそんな余計なことしなくても
Ctrl + ins: コピー
Shift + ins: 貼り付け
Shift + del: 切り取り
でクリップボードの操作できるでしょ
macなら知らんけど
ttp://nanasi.jp/articles/howto/editing/clipboard.html#id2 null レジスタに送っておけば?
nnoremap s "_s
"_ がそれ
:h "_ >>356
Linuxで使っています。
PRIMARYにある文字列が保存されているとして
文章中のある(それとは別の)文字列をsコマンドで消去すると
Shift+Insをした際にPRIMARYにある文字列ではなくsコマンドで消去した文字列が挿入されてしまうのです。 >>357
ありがとうございます。
すいません。なぜかそれでも上手くいきませんでした。
まず"_sと直接入力した場合はPRIMARYにある文字列も消えてしまいました。
またnnoremap s "_sとして設定した場合は相変らず>>358の現象が起こります。
なにかクリップボードの設定を弄ったおぼえはないんですがね……。
VimはDebian sidのパッケージマネージャで入れたvim-gtk3 8.1.0875-5です。
clipboard・xterm_clipboard共に有効になっています。 ‘clipboard’にunnamedを設定してる? >>360
ありがとうございます。
set clipboard-=autoselect
↑これで解決しました。 カーソル位置の文字で直接ヘルプを引くプラグインってない?
vimのメモや.vimrc上でヘルプを引くけどコマンド入力が手間なんで直接検索したい Ref.vim あたりがそういうの設定で何でもできるイメージ 最悪マクロの類(コマンド
C-r C-w
これでコマンドモードでも
ノーマルモードのカーソルがいた位置の文字が参照されて入るから
nnoremap で何かトリガー引いたら後は
:h C-r C-w <Enter> みたいな流れ
CTRL-R CTRL-W
Insert the object under the cursor: つ.vimrcにset keywordprg=:help
使い方はノーマルモードで検索対象の上にカーソル置いてKキーポチる
setが読みたいならset上でK >>366
>364やね。
これをどっかにmapすりゃよい。 C-r_C-w はどんなファイルでも使える汎用的な物なので知っておくと便利
Vim のヘルプを引くという要件だと keywordprg=:help のほうがおすすめ
というか、$VIMRUNTIME/ftplugin/vim.vim で定義されているから .vim なファイルを開いた時に K キーを押せばヘルプが開くはず >>368
便利ね。でもwordの定義が固定されてるから「=」とかが含まれてる時にまともに機能しないね @-moz-documentに入れ子になってるCSSのシンタックスハイライトでおかしな配色になる時があるけど
どういう場合に再現するか分からんから報告もできず……。
例えば
@-moz-document url("http://example.com") {
:root { /* ←ここから色が付かない */
color: red;
}
} >>371
https://imgur.com/xFZNJsB
こんな感じです。
(
$ vim -u /usr/share/vim/vim81/defaults.vim ~/var/tmp/jnk/a.css
で起動) >>370
@-moz-documentに限らないね
そこを@media screenとかに変えても同じ
もっと言えば @… を除いてブレース { … } だけでも再現する
それとコロンを含むセレクターの組合せが、問題の引き金みたい
まとめるとこう
コロン : を含むセレクターを持つCSS宣言ブロックがブレース {} で括られている場合
そのコロンから一つめのプロパティーまでと
最後の閉じブレースが正しくハイライトされない
確認用CSS
https://pastebin.com/raw/tKdJpvXa
この場合 8〜10行目、19行目、21行目 で問題あり
他は正しくハイライトされる
https://i.imgur.com/cykqKUM.png :set filetype=scss
以前、余所で聞いたときの答え vim同梱のやつが古いだけで元のリポジトリでは修正済み
ttps://github.com/JulesWang/css.vim/issues/69 あ、すみません。
それ以後気にせず使ってたんですが
html,
html:root,←scssだとここがおかしいですね その割に異様に読みにくかったり大抵は修正が必要だよな
そのまま使わせちゃくれない perl でサブルーチンよびだしがハイライトされない
https://i.imgur.com/3u76nhj.jpg
解決方法ありますか?
デフォルトはハイライトおかしいのが有名なので
Plug 'vim-perl/vim-perl', { 'for': 'perl' }
してます 自分はSolarizedは青すぎて好きになれんかったな。
もちろん好みの問題だけど,Campbellはなかなか良い。
黒字に白というかなり標準的な配色ながら原色ケバケバしていないのが好感。 & を付けるとシンタックスハイライトが効きます
しかし、類似する表現と見分けがつきにくいので
& 付けないでサブルーチン呼び出しをします
このハイライトされないことに対して
なにか方法はありますか 背景真っ黒はつまらないな
色つけるなら青くらいしかない MX-18.3(Debian 9)のxfce4-terminalでvim-hybridのカラースキームを使ってるんですが、
行スクロールすると文字が入力されていない部分の背景色だけがターミナルの設定色(黒)になり、
まだらになってしまいます(ページスクロールするとカラースキーム通りの背景色になる)。
これまでKona 3.0(Debian 8)のxfce4-terminalでは正常に表示されています。
これはどこをチェックすればいいんでしょうか?
https://i.imgur.com/pZc7ovV.png >>390
いえ、普通にHDDにインストールしたLinuxです。
念のためVimやxfce4-terminalを最新にしてみても駄目でした。
Neovimでは問題がないようです。 とりあえず検証のためにsttermを入れて試してみたら問題ありませんでした。
xfce4-terminalの問題のようですが、
別のKona 3.0(Debian 8)の環境はxfce4-terminal 8.4で、
現在のMX-18.3(Debian 9)とxfce4-termnal 8.3/8.8と何が違うのかはわかりません。 >>392
set t_ut=
ってやってみて。値は空ね。 >>393
> set t_ut=
ずばりこれで解決しました!最初の値はt_ut=yでした。
ありがとうございます。助かりました。 >>394
よかった。
まあlibVTE(Xfce4 Terminalが依存してる端末エミュ)は色々ゴミ…もとい貢献の余地があるライブラリだからね…
stやrxvt Unicodeを使うことをお勧めする。 >>395
最近のxfce4-terminalはそこそこモダンで使いやすそうに見えたんですが、
結構やばいブツだったんですか?
公式にあるstは少し古くて動作が怪しいところがあったので、
最新のソースで試してみます。 >>396
LibVTEは端末エミュレーションの中核ライブラリだから
端末エミュレータの見掛けにはあまり関係しない。
LibVTEについて、「やばい」は言い過ぎ。
ただ、(偉そうだけど)俺が不満な点としては
・理解できない(つまり非対応の)端末制御文字列を
(セキュリティリスクがあるのに)そのまま標準出力に流してしまう。
($ printf '\e]>4;1m'とかやってみて。これはLibVTEが解釈できない文字列で
そういうのは本来 無視するべきなんだけどLibVTEはなぜかこれをそのまま出力する)
・端末制御文字列の解釈が甘い
(それこそあなたが遭遇した背景色の処理とか。
これはVimが第一端末特性要求をちゃんと送信してるのに
LibVTEがタコみたいな応答を返すのでVimが勘違いしてるせい。)
・てか処理が重い。
(BM参考: (なんか書き込めないから後で)
四年前だから近況を反映してるとは言い難いけど、やっぱrxvtとかと比べると非常に遅いと思う)
だからまあ、あまりお勧めはしないかな。 VimのAsciiDocのシンタックスハイライトで
[source,javascript]
----
JavaScriptコード
----
をJavaScriptのコードでハイライトする方法ってありますか?
HTMLを編集してるときに<style>で囲まれた部分にCSSのシンタックスハイライトが適用されてたので
$VIMRUNTIME/syntax/html.vimでそれらしき箇所を探したのですが
私の能力不足で何をしてるのか全然分かりません。。。 みなさんvimの起動に何秒かかります?
自分は1.5秒も程度かかり、最近はちょっとしたことなら
lessコマンドでファイルを開くという本末転倒な癖がつく始末
プラグイン見直すべきかな・・・ これでもneovimに変えてマシにはなったんですけどね
やっぱりSSDでないと厳しいかな call plug#begin('~/.vim/plugged')
Plug 'airblade/vim-gitgutter', { 'for': ['perl', 'sh', 'python', 'c', 'lisp', 'vim'] }
Plug 'tyru/eskk.vim'
Plug 'thinca/vim-quickrun', { 'for': ['perl', 'sh', 'python', 'c', 'lisp', 'vim'] }
Plug 'Shougo/vimproc.vim' vim-plugだと >404がやってるのがフィルタイプ判別して読み込む
optionのfor位置にonとか使えば使用時に読み込む遅延読み込みになるよ 起動時間ってどうやって測定したの?
もしかしたらVimそのものじゃない可能性もあるよね。 $ vim --startuptime <file> じゃね Vimで:help <Tab>としたときに表示される補完候補って
ファイルとしてどこかに纏められてないでしょうか
これをVimの外部で利用したいんです >>408
$VIMRUNTIME/doc/tags >>400ですがstartuptimeの筆頭がclipboardで500msecくらいあったので
set clipboard=unnamedplus
を
let g:clipboard = {'copy': {'+': 'pbcopy', '*': 'pbcopy'}, 'paste': {'+': 'pbpaste', '*': 'pbpaste'}, 'name': 'pbcopy', 'cache_enabled': 0}
set clipboard+=unnamedplus
に変えるとあっさり改善しました。と同時に、もっと早くしたいという欲がふつふつと・・・ >>411
脳死状態で聞いてしまうのですが
これってclipboard をどんな処理させてんすか? クリップボードを明治指定してやらんと遅くなるって話ですかね
関連するissue
https://github.com/neovim/neovim/issues/7237
ちなみにpbcopyはMacなのでLinuxの人は上にある通りxsel たまに計測するといい感じに無駄が省けるね
() [] などを同じ操作でテキストオブジェクト扱うプラグインが
使わない上に重かったので外した vim の 大文字のマークはファイルを超えてジャンプできるマークを設定する
これディレクトリもマークできないか? qで終了させても次回また使えるようにしたい
mS でsnippets directory をマークしておき'S で飛んでいずれかの言語のスニペットを編集する流れ
ひょっとしたら普通は消えず
set viminfo='1000,f1,<500,h,:500
これが原因で消し飛んでいるのかもしれないが 消えるから
他のところでへまやらかしているということか
当面は代表の1つを割り当てて
'S
:e.
のような流れで
必要ならそのディレクトリ開くコマンドを.vimrcに書きます aligin.vim 便利だが
ワンライナーで使えないだろうか
shell_scripts_or_so_on... | vim.align_by "sep" | something
のような流れを考えている そもそもVimがワンライナーに向いてない。
標準出力に処理内容を吐き出さないからね(まあエディタとしては当然の挙動ではある)。 VimScriptで外部シェルコマンドの実行結果を利用するにはどうすればいいでしょうか。
:!somecmd
↑こういう対話的(VimScriptに反映しにくい)やり方ではなくて
例えばPythonで言う「subprocess.run("date")」のような利用方法が知りたいです。 >>421
そうか サンクス
というわけで書きあげました
https://pastebin.com/pYBipcQt
日英混合両対応です
引数処理だらしないけど動く google colabがvimキーバインド対応したらしいな GoogleにはVimmerが多そう
Gmail等のキーボードショートカットもVimライクだし つーか単純に
ブラウザの機能に束縛されてることの多い[Ctrl]+系列のショートカットが使えないから
キーボード上の何か一文字をショートカットにしたほうがいい
→そういう「一文字のショートカット」で有名なのはVim式バインドなのでそれを採用
ジャマイカと予想
実際YouTubeのショートカットはVimのそれとは微妙に感覚が違うし。 論理行の折り返しを切り替えるショートカットって作れる? >>430
nnoremap <F8> :set wrap!<CR>
こういうこと? 同じようなことはしてらっしゃらないけど
Shared Mime Infoという汎用のメディアタイプ判定が用意されてきてる環境においては
Vim独自のftdetectやらfiletype.vimはなんか無駄なんじゃねーかと思うわ。
同じ機能が重複してOSにあるっていうのが嫌、というかなんというか。 filetype.vimは拡張子見てるだけだしオフにして自分でvim script書いたら? xdg-mime query filetype <FILE>
でメディアタイプが返ってくるから
system("xdg-mime query filetype", ...)
とかでどうにかできそうと思ったけど
...は標準入力として渡されてしまうのでファイルパスを指定するのは無理っぽい。
残念。 突然の質問失礼します
普段vscode使っているのですがvimを試してみようと思ってvimを導入し.vimrcを設定したのですが
1 package main$
2 $
3 import "fmt"$
というように文末に$がついてしまいます
ググっても解決方法が見つけることができません
環境はubuntu18.04でvim8.0.1453です
どなたかご教示願います 速レスありがとうございます
解決しました
ありがとうございました git-bash.exe から neovim (nvim) を実行する方法、設定を教えて欲しいです。
コマンドプロンプトやパワーシェルのターミナル内からは、nvim を実行できるのですが、
git-bash では、nvim と入力すると、反応がなくなります。nvim-qt は実行できます。
ご存知の方いたら、お教えください。 Powerline系のプラグインを使ってる方いらっしゃいますか?
ambiwidthをdoubleに設定してあると、
Powerline用にパッチを当てたフォントでシンボルの位置がずれるせいか、
ステータスラインの表示が崩れてしまいます。
何か対処があるでしょうか?
画像はlightline.vimですが本家Powerlineなどでも同様になります。
single
https://i.imgur.com/BELOSs4.png
double
https://i.imgur.com/SpQkkWq.png >>443
singleで駄目なの?
下数ドット余るような感じになるってこと? 文章を書くような用途に使ってるので、
基本的にambiwidth=doubleでないと都合が悪いんです。
下の画像の右端の二つのセクションでは、
パッチを当てたフォントで表示する三角のセパレーターが千切れています。
わかり難いですが実はそれ以外の部分も位置がずれていて、
文字幅がdoubleと見なされてるということでしょうか? ターミナルの実装とフォントに寄るんじゃないかな。
自分はAirLine使ってるけど特に不具合なく表示できてる。
あ、でもWindowsのTeraTermでは同じ設定ではちゃんと
表示されなかったな。 vim powerline ambiwidth doubleあたりで検索するといくつかヒットするので、
それなりに既知の問題みたいです。
https://qiita.com/TsutomuNakamura/items/bd9139942973dfc469cc
https://github.com/miiton/Cica/issues/17
現在はrxvt-unicodeにEast Asian Ambiguousを全角で表示する修正ロケールを使用しています。 $ ls -la ~/.viminf*
-rw-r--r-- 1 user user 23K 8月 26 20:14 /home/user/.viminfo
-rw-r--r-- 1 user user 60K 7月 23 17:48 /home/user/.viminft.tmp
-rw-r--r-- 1 user user 0 7月 17 17:42 /home/user/.viminfu.tmp
-rw-r--r-- 1 user user 0 7月 17 17:42 /home/user/.viminfv.tmp
-rw-r--r-- 1 user user 0 7月 17 06:27 /home/user/.viminfw.tmp
-rw-r--r-- 1 user user 0 7月 17 06:27 /home/user/.viminfx.tmp
-rw-r--r-- 1 user user 0 7月 15 11:19 /home/user/.viminfy.tmp
-rw-r--r-- 1 user user 0 7月 15 11:19 /home/user/.viminfz.tmp
履歴が妙に減ったと思ったらviminfoが分裂してたでござる
vimを強制終了した覚えもないしなんでこんなゴミが 結局、lightline.vimのドキュメントにもある通り、
旧いvim-powerline用にパッチを当てたフォントを用いると隙間がなくなりました。
Noto Monoにパッチを当てて、
urxvtで隙間がなくなるように文字間を1px詰めています。
当面vimで使うだけならこれでもしのげそうです。
https://i.imgur.com/AwRn7aa.png
Noto Monoは割と文字間が広いのでむしろ詰めてちょうど良いくらいですが、
Rictyとかは逆に狭いので具合が悪い。 何だかこういう手間をかけなくても、
Cicaフォントを使えばambiwidth=doubleでも問題ないようなんですが、
手元のurxvtではセパレーターが豆腐になり表示されません。 >>450
それVimの問題なのかね。
urxvtはlibVTE系の端末エミュと違って指定したフォント「だけ」を忠実に利用するから
そのフォントにその符号のグリフが登録されてないとどうしようもないよ。 これまでどちらかというと文字間が空き過ぎて詰めてるんですが、
逆に文字間を5pxまで広げたら表示されました。
これだけ広げるとセパレーターの前後に隙間ができて使えませんでしたが。
urxvtでambiwidth=doubleに設定した場合、
現状では旧vim-powerline用のフォントを使うしかなさそうです。
xfce4-terminalではCicaフォントで問題がないようです。 > xfce4-terminalではCicaフォントで問題がないようです。
うそでした。やはりambiwidth=doubleではうまく動きませんね。
ターミナルを複数起動していてきちんと設定の変更が反映されていなかったようです。 それを言うとPowerline自体絶対必要なものじゃないし、
見慣れた景色がちょっと変わって気分がいいだけ。
でもノーマルのlightline.vimでもいいと思うよ。 さっさとSIXELが各種端末に実装されればいいのに(他力本願) powerlineってパンくずリストみたいな奴か
専用フォントまで必要って随分大げさなんだな PLの、フォントから色から何まで全部自分のところに会わせようとする感じが欧米らしいよねw 補完、deopleteからvim-lspに乗り換えたら爆速になった deopleteが遅いっていうのがどのレベルのこと言ってるのか分からない
自分の環境では入力した瞬間に候補出るから時間だけで言えばVSやVSCodeの補完と変わらないレベル gvimとpythonの連携でお尋ね。
Kaoriya版のgvim8.1を使っています。
:version で確認するとpython3のdllは3.5でコンパイルとなっていました
このとき3.7を使いたい場合はどうしたら?
使うの意味は3.6以上対応のプラグインを使用したり、quickrunでpython3.7を使うことを想定してます
pythonはAnacondaも使わず、素のPython3.7をインストールしてます
vimrcでpythonthreedllにパス付きのpython37.dllを指定しても
:echo has('python3') は1になりませんでした。
1. Kaoriya版を諦める
2. 3.7を諦める
3. nvimに移行
以外のアドバイスがあればお願いします。 解決した。パスをクォーテーションで囲んだらいけなかったのね。この基本てどこか書いてる? vim 8.1...最新20かな? インスコしたらカレント行ハイライト行番号だけ下線出てきたんだけどなんで?
clear cursorlineは餅済 Vimも肥大エディタ化して四半世紀か。コンソールエディタだからこそ基本はガリマッチョじゃないとな。
窓で言うならマイフェスがVimだろ?
まぁ、プラグイン仕様だから削ぎ落とし可能な分だけマシかw
マシンスペック頼りの詰め込みエディタはいらんね。w 知恵遅れが理解不能なものを糖質っていう風潮、止めないと。 知恵遅れも糖質も一定の状態を指称する。
違う状態なのにそういうのはダメだけど、言葉そのものが間違いなわけじゃない。 糖質が理解不可能なもの知恵遅れって言う風潮、止めないと 糖質が理解不可能なものアスペって言う風潮、止めないと まあ>>472がイミフなんで言いたくなる気持ちもわかる せめて「Vimも肥大エディタ化して四半世紀」くらいは読めるようになろうね vimmerは移動にhjklしかほとんど使わないですか?
最近レスポンスが遅い環境なのでw,b,f,その他色々使ってみてるのですが慣れる気がしないです。 普通にカーソルキー使ってる
その分hjklを他にバインド出来るし >>490
全部使うでしょ
ページ単位で移動したり、gの行指定も使うし HMLはハイミドルローだからまだいい
但しggとG、テメーらはダメだ 右ctrlだけEmacsキーバインドにしてカーソル移動してる。もちろんノーマルモードではhjklを使ってる。
他人のPCで作業できなくなるので全くおすすめしない 今日知ったけどYouTubeもjlで10秒スキップできるな ページ送りでだいたい移動してwf/とかで目標まで移動
微調整にhjkl googleのサービスのショートカットキーはvim式のものが結構ある プログラミングも初心者でvim も触って半年で
プラグイン使わずになんとかメモ書きは慣れてきた程度の者なのですが
vim のソースコードに興味があります
(淡い)最大の目標としてフォークしてgui アプリ作ったり
なんて、考えています。
ios にはもうiVim というのがありますが
そんなイメージです。
vim のコードを読むのか、neovim の方がいいのか
どこから読み始めればいいのか、暗中模索な状態です
いまは、日本語ヘルプ読んだり
github のリポジトリのディレクトリとただ眺めている
感じです
ヘルプのここを読めとか、このテキストは良いとか
Vim ならVim で!NeoVim ならNeoVimで!やら
プラグイン入れてからじゃね?プラグイン作ってからじゃね?
などなど、アドバイスありましたら
よろしくお願いします。 >>501
vimソース見る前にプラグイン作るのが楽しくなってくるのに一票 neovimにはGUIを実装したonivimとかあるしそれ参考にしたらいい vimはキーバインドとキーが一致しないのがちょっと
小文字と大文字を対にするのは苦肉の策にしても推測しにくいってのは中々 キーバインドなんて1週間ぐらい全ての文字入力をvimだけでやっていれば基本的なのは手が勝手に動くようになる >>503
oni はいいなぁと思っていたので
リポジトリ見てみます!
ありがとうございます! vimで段落移動できるとか何でもっと早く教えてくれないんだ
置換と僅かなテキストオブジェクトだけでも通用するけども Vimでウィンドウ分割して編集中のバッファと別にIDE風にregisterやmarker内容を常に表示させたままにする方法ってあるのでしょうか?で、yankすると、その内容がリアルタイムに変更されるような感じのもの。 vim初心者に対しては保存操作よりまずクリップボードの連携をするのが先だと思う
なまじ独自の領域を持つ故にらコピペもままならないとかふざけんなと
クッソ遠いESCをC-[で代替できるとかさ コピペは Shift-Ins でやってるな
GVim とか Win でも使えるのか知らないけど jjを推す訳じゃないが
jjよりc-[のほうが3倍くらい入力コスト高いと思うぞ 自分もクリップボードへのコピペと切り取りは C-ins, S-ins, S-del
vim以外でもほとんどこれ
ctrl +x,c,v はほぼ使わない set clipboard=unnamed,autoselect
にしている コピペはinset/deleteでやるからいいとか言いたことはそうじゃないと思うぞ
XCV以前からあるショートカットってだけでvim発祥じゃないんだから syntax enable
と
syantax on
の違いってなんでしょう?
ヘルプを見るとenableの方は自分で設定したhighlight等を上書きせず、onの方は自分で設定したhighlightを破棄してデフォルトの設定にする、と書いてあります。
が、自分で色々実験してみても違いがないように思えます。
違いが出るような再現手順があれば、それも教えていただきたいです。 ESCはC-iにしてる
はずだったんだがタブが挿入される なんでやw ここだけ伸びてるというより他のスレが限界集落ってだけでは 2ch閉鎖危機の時の伝説が無ければとっくにLinux板と統合されてるよ >>531
当時2ちゃんよくわからなくROMってて
なんか表示おかしーな?って思ってたら
気がついたら直ってて
コピペになってた
32歳美少女 置換モードでコードに書かれている単語の補完が可能になる方法やプラグイン知ってる方いませんか? vimって日本語と相性悪そうなんだけどどうなの
まさか日本語封印するために英語使ってんの >>535
vimはインプットメソッドと相性悪いけどどうなの
日本語打てないからわざわざ英語でコメント打ってんの
じゃねーの? 別に相性悪か無いよ
そもそもコーディングするとき日本語あんまり使わないし 日本語入力し終わったらIMEオフるクセついてる
あとinsertから戻るときにIMEオフになるよう設定してる いつの間にか他のアプリのキーバインド全てvim風にしてしまう病 まずシェルとWebブラウザは基本
vimバインドじゃないとイラつく https://www.google.com/search?q=vim+t-shirt&prmd=isvn&sxsrf=ACYBGNRtsF8T-UeMAaf6X3pJIe4MRnng6g:1573565684046&source=lnms&tbm=shop&sa=X&ved=2ahUKEwjN-YL95OTlAhWNy4sBHTPgCJoQ_AUoAnoECA0QAg&biw=424&bih=621&dpr=2.55
次の症状 個人的にhjklのさりげなさ、わかる人にだけわかる感が好き 俺のhjklは矢印変換専用ですわ
むしろvim以外で輝く マッキー極細でhjklキートップに←↓↑→と、homeに~と、
追加で書きたくなる俺は多分病気だな 確かに矢印変換の方がhjklは捗るよね
俺の場合それで方向覚えたわ googleIMEはz+hjklで矢印が出せるからな
zhで←、zjで↓が出るから使ってりゃ自然と覚えるってこと
他にz,で‥、z.で…、z[で『、z]で』、z-で〜になる シェルのキーバインドはemacsだわ
モード切り替えるのが面倒くさい rogue というゲームをやると hjlk は自然と覚えられるぞ rogueぼちぼちやってる
放置してると割と解けたりするし、詰まったら放置 まともに学習したいならvim adventuresやれ定期 vim adventuresでぐぐって3番目の記事に草 Googleの検索結果はパーソナライズされているということは知っておこう すまん。作者と思われたら失礼だと思い周りくどく書いてしまった。
俺の脳髄のスマッシュヒットはこちら
ttps://qiita.com/kugyu10/items/3f79073a2ac280c43dac .viminfo の中のジャンプリストという部分が
新しいファイルを開く度に(正確には開いて閉じる度に)古い履歴が二重に増殖してしまうんだが
これバグだよな?
だれかバグ報告しといてくれない?
どこに報告すればいいのかわからん
↓以下 .viminfo の具体例
# ジャンプリスト (新しいものが先):
-' 1 0 ~/Desktop/temp/a.txt
|4,39,1,0,1574150163,"~/Desktop/temp/a.txt"
(省略...)
↑これが
b.txt を開いて閉じると
↓こうなる
# ジャンプリスト (新しいものが先):
-' 1 0 ~/Desktop/temp/b.txt
|4,39,1,0,1574150302,"~/Desktop/temp/b.txt"
-' 1 0 ~/Desktop/temp/a.txt
|4,39,1,0,1574150163,"~/Desktop/temp/a.txt"
-' 1 0 ~/Desktop/temp/a.txt
|4,39,1,0,1574150163,"~/Desktop/temp/a.txt"
(省略...)
さらに繰り返すたびに倍々に増えていく g系のコマンドもなかなか覚えられないな
giとかgdは便利なんだけど、明確に意識しないと使いこなせない(´・ω・`) vimの全コマンドを網羅した壁紙って4Kで足りる? VimConf 2019 Videos and Photos
https://www.youtube.com/watch?v=kgUciluS-ys&list=PLx8bw5NQypskQlEGupVqoUBBJtRmNXLet
面白いトピックはあるかな? 趣味でvim始めてみたいんだけどドットインストールの講座マスターするだけでは不十分?
実践Vimまで手を出すべきだろうか ドットインストールの一覧見た感じ基本はだいたいOK
気になるなら実践Vimは買って損はない >>577
発音は「ビム」で良かったんか…
今まで思い切り「ヴイアイエム」やったわw 実践Vimいいよ〜
いっぱしのvi使いを自認していたつもりだったけど、知らないことがいっぱいあったわ 画面スクロールをさかのぼる方法ってない?
目的としては、カーソル位置の単語を検索する時に*を入力すると次の単語に飛ぶのが嫌なので*Nにマッピングして元の単語にカーソルを戻しているんだけど、
これだと次の単語が表示範囲外だった場合はスクロールが発生するために元の単語に戻った時に表示範囲が変わってしまう
*Nの後に何か追加するかしてこの表示範囲ズレも含めて元に戻したい 俺はscrolloff設定して常に画面中央にカーソルが来るようにしてる
ジャンプする前も戻ってきた時もカーソル位置や画面範囲は変わらない Vimうまくすればほとんどエディタ、開発環境の上位互換なんじゃないのか?
調べれば調べるほどなんでもできるぞこれ 色々やろうとすればやろうとするほど
俺様環境になるんだよなw
他人に触らせられない 基本viでバッファ複数持てて画面を縦横に分割できるのが良いなvimは、エディタとして。
あとvimdiffがものすごく便利。
これなしでコードレビューできなくなってきてて怖い。
逆にそれ以外の機能使ってない。
エディタに懲りすぎると何が目的か分からなくなる。
そういうの楽しいけど。 vimをIDE化させることに否定的な人って多いけどvimrcとインストールスクリプトで
OS依存なく環境の自動構築ができる範囲に収まる限りは問題ないだろうと思う
今時他人にPC操作させることなどほぼないし他人が使うことを最初から想定しているならユーザーを切り替えればいい vimgrepとdiffsplitとタグジャンプを使いこなせれば怖いものはない 近頃の vim の漢字コードはどんな感じ?
自動判定して任意の漢字コードで書き込めるの? linux 上の話で申し訳ないが、8.1.2391 をUTF-8で使っていて、
環境に混在してる漢字仮名が書き込んである古いeuc-jp 文書をvimで開くと読めたことはない。
nkf で変換すればなんの問題もないけどな。 fileencodingsってvim6くらいに入ったんだな >>589
IDE化ってどのくらいまでのこと言うのかな?
人によって感覚は違うんだろうが、自分的にはソース編集のための便利機能まではエディタの範疇で、コンパイル、リンクの環境みたいなのまで持ち始めるとIDEかなあ。 nkfなんてあるのか
これならwinのSJISも化けずに済むな SJISを読む時はlvもあるといいよ
化けないless 584だがvim-asteriskでスクロール抑制できるようになった >>584
つ vim-asteriskのstayモード テキスト整形プラグインっていっぱいあってどれ使えばいいかわからん
Align使ってみるけど 指定したファイルを読み込み時にタイムスタンプを自動で挿入ってできる?
ガッツリした日記じゃなくて軽いメモ程度なんだけど autocmd BufReadとstrftime("%Y-%m-%d", localtime())組み合わせたらいけそう
(丸投げ) XML系列の言語のシンタックスハイライトで
名前空間がある場合と無い場合両方に対してハイライトを適用したんだけどどうすればいいかな。
現状syntax/xslt.vimを参考に↓
syn cluster xmlTagHook add=xmlElement
syn case match
syn match xmlElement '\%(namespace:\)\@<=element'
hi def link xmlElement Statement
↑としてるんだけどnamespace:が省略されてると上手くいかない。 行頭に.LOG付けてメモ帳で開くと日付の自動挿入できたよな
leafpadにはないが 暇つぶしにquotes.txtを読んでみた
私の元カノはemacsに走りました。もちろん、彼女とはうまくいきませんでした。
(Geoffrey Mann)
草 日付挿入の件だけど,
具体的な実装を出せないくらいVimスクリプト初学者が言うと
特定のファイルが開かれる
→それが今日開くのが二度目ならなにもしない
→そうでなければ今日の日付けをバッファに読み込んだ後に挿入
これだけで実現できそう。 autodate.vimのフック処理を開いたときにも適用すればいいんじゃないのかな
開いたときじゃなくて保存時でいいならそのまま使える お前らって拡張はいくつ入れてるの?無闇に入れてもどうせ持て余すしよ
プラグインマネージャー自体が無駄に多くて余計訳わからんし Vundle
vim-airline
vimdoc-ja NeoBundle 'vim-jp/vimdoc-ja'
NeoBundle 'tpope/vim-sensible.git'
NeoBundle 'vim-scripts/vim-auto-save'
NeoBundle 'skanehira/vsession'
NeoBundle 'tpope/vim-surround' 開発用に使うから各言語用プラグインとか入れてると結果的に40個ぐらいになっている Plug 'junegunn/vim-plug', {'dir': '~/.vim/plugged/vim-plug/autoload'}
Plug 'vim-jp/vimdoc-ja'
Plug 'scrooloose/nerdcommenter'
Plug 'scrooloose/nerdtree'
Plug 'jistr/vim-nerdtree-tabs', {'on': 'NERDTreeToggle'}
Plug 'severin-lemaignan/vim-minimap'
Plug 'vim-scripts/sudo.vim'
Plug 'vim-scripts/taglist.vim'
Plug 'vim-scripts/gtags.vim'
Plug 'vim-scripts/SrcExpl'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'thinca/vim-quickrun', {'on': 'QuickRun'}
Plug 'Shougo/vimproc.vim', {'do': 'make', 'on': 'QuickRun'}
Plug 'Shougo/vimshell.vim'
Plug 'Shougo/neocomplete.vim'
Plug 'Shougo/vinarise.vim'
Plug 'davidhalter/jedi-vim', {'for': 'python'}
Plug 'mrkn/mrkn256.vim', {'do': 'cp ~/.vim/plugged/mrkn256.vim/colors/mrkn256.vim ~/.vim/colors/'}
Plug 'vim-scripts/grep.vim'
Plug 't9md/vim-quickhl'
Plug 'haya14busa/incsearch.vim'
Plug 'junegunn/fzf', {'dir': '~/.fzf', 'do': './install --all'}
Plug 'junegunn/fzf.vim'
スマフォで使ってる設定だから最低限だぜ?って言おうとしたら
それでも24個入ってたw
面倒になって結局共通化したんだったわ 拡張は起動時に全部読み込むから突っ込み過ぎたら当然もたつくよ
遅延読み込みできるプラグインマネージャーもあるらしいがよくは知らん
マネージャーの記述自体が煩雑化してアレ deinなら遅延フラグと起動オプションを設定するだけだから大して難しくはない
起動オプションは特定形式のファイル開いたときとか、特定のコマンドが呼ばれた時とか 新年というとこで自宅遊び用は
.vimrc を一掃して
Plug 'prabirshrestha/async.vim'
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/asyncomplete-lsp.vim'
Plug 'prabirshrestha/vim-lsp'
Plug 'mattn/vim-lsp-settings'
とりま、これで
あとはremap で、なんとか、、、
は行かなくて、意地でやってる(非効率) >>617
スマホって ssh で?
iVim とか? >>622
LinuxDeployでdebianダヨ 100個くらい入れてる
自前の設定集を含めて
気が向いたときに不要なの整理してる
全部覚えとくの無理だからなるべく覚えない方針
遅延読み込みしてれば体感は軽くできる インストールが目的化して最終的に更地にするのまでがデフォ
デスクトップ改造と同じよ 最近のVimはバニラでも高級なことができるからほぼ要らない。
特殊なことしたけりゃVimスクリプトじゃなくて組み込みのPython使えばいいし。
でもまあ、面白いプラグインも結構あるよね。音楽流したりw 端末から直接vimのヘルプを引く方法を教えろ下さい
manみたいにできないか $ vim +h (調べたい項目)
例
$ vim +h popup onlyつけた方が見やすいな
$ vim +'h (調べたい項目)|only'
$ vim +'h popup|only' vim-h () {
vim +":help ${1:help}|only"
}
$ vim-h c
引数なしだとhelpトップになる
helpを閉じてもvimが残ってて困ってたけどonly便利だな Gが最終行でggが先頭行ってのが不可解なんだけどどう解釈すればいいの
hjklでさえ慣れたのにこれは一向に gの意味は素直にgoだと思う
Gの対がggなのは小文文字のgで始まるコマンドが沢山あるからだろうな
gがマップリーダーになってるから単独のgは使えないと
なんでGで下に行くかは知らん GはGyou(行)の頭文字だから数字Gで数字の行に移動できる
ここでGにデフォルトの値を与えることを考える
Gのデフォルトは1でも10でも100でも何でも良いが、最初または最後の行に移動するという頻繁に使われるのがデフォルトとして適切だろう
最初の行に行く動作は常に1Gで達成できる
一方最後の行に行く動作は999...GのようにMax行数以上の数値を指定する必要がある
したがってGのデフォルトはファイルの最終行に移動が適切
ggはなんかあれでしょ1Gだよ小指がつりそうだからほら 下はG
上は:1と打ってる
EWS-UX-Vの時代から 初歩的なんですが複数行の範囲指定ってどうすれば
50行間隔で改行を挟みたいんですが50Vとしても矩形になるし 改行挟むの処理はマクロが便利だと思うが
単にビジュアルモードで選択したいなら
V50jy とかで1度50行選択してビジュアル操作をしておくと
次から1Vで50行選択になる(2Vで100行選択) いっそsedという手も
$ seq -w 100 | sed '1~50s/^/\n/' vimって文字の切り取りだけだけど純粋な削除ってないのか
ddは実質切り取りだからレジスタが更新されて台無しになるよな
予め文字列をコピーしてから何かを消して貼り付けって自然な動作だと思ってたんだけど vim五大初見殺し
・保存方法が分からない
・クリップボードが使えず不便
・切り取りだけで不便
・IMEとの相性が最悪
vimは本腰入れて覚えようとするとこれ食らうから結構萎える
最初は保存にはしゃぐけどコピペもままならないから結局手間だろって
ブラックホールレジスタなんか用語知らなきゃ出て来ないしな
nnoremap設定するだけだってのは的外れだもの レジスタ使い分けるよりファイル内の適当な場所に一旦貼り付けて残しておくか無名バッファを作って作業領域にした方が簡単だと思う 指定したコマンド履歴の削除ってできないですか
入力ミスった奴を消して整理したい $ 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だとどうやるんだこれ vimを学び始めています。置換が良く分かりません。
正規表現で「[A|B]00000」と言う文字列を「[A|B]11111」に置き換えたい場合どうすればよいでしょうか?
調べても下記●●の部分がイマイチ分かりませんでした。
:%s/[A|B]00000/●●11111/
宜しくお願いします。 俺なら:%s/\([A|B]\)00000/\111111/g
かな?
先読み後読みが苦手だからもっといい書き方ある気もするけど >>660
なるほど、「\1」は試したのですが、括弧が必要だったのですね。
括弧を使い、それを加えさせない為にgを加えるわけですね。
ありがとうございました。 >>661
これ読んでわかる初心者っているのでしょうか? >>663
vim内からすぐにアクセスできるドキュメントがあるのに読まないのはありえない
読んでわからなかったらどこかの解説記事を探してぐぐるべき >>663
正規表現は分かってるけど
vimが分かってないvimの初心者なら
読めば分かる
659のように正規表現自体を理解してない人は
正規表現から先に学ぶべき >>662
gの解釈は多分違うぞ
最初だけでなく複数回マッチした場合も全部置換する >>663
そう突っかからず専ブラで正規表現NGとかから楽しくお勉強してみませんかね?
正規表現道場とかもどこかの板にあったよ とりあえずVIMの正規表現は常にvery magicモードでやるのが基本だね magicモードの方はsedに似てるから達人は好むのかと思ってた nnoremap [hoge] <Nop>
nmap <Space>h
nnorema [hoge]f :Fuga<CR>
上記のようなものを見かけて意味としては理解できるんですがこの[]で囲むののヘルプを見つけることが出来ませんでした
なんて調べればhelpでてきますか? >>670
2行目は多分 nmap <Space>h [hoge] でしょ
スペースhと打てば単純に[hoge]が入力されるだけ
スペースhfと打てばFugaコマンドが実行されるようになるのが3行目 >>670
括弧で囲んでいるのは見た目以上の意味はない
単なるマッピング >>671
二行目おっしゃるとおりですtypoしました
>>672
それだけだったんですか…ありがとうございます
拍子抜けしちゃいました >>668
毎回¥vと打つのが面倒なんだけど、デフォルトで¥vにするのはできないんかなぁ >>677
それだと、exコマンド打つときに効かなくない?
エンジン自体をVery Magicにしたいのよ 現在位置の強調ができないんだけどなぜだろう
http://i.imgur.com/YHxRuaW.png
:source ~/.vimrcした直後は反映されるけどカーソル移動したら消える謎 エスパーするにも無理がある気がするがとりあえずその設定をvimrcの最下行に移してみてそれでも再発するか
再発するならプラグイン消してみてそれでも再発するか調べる
とかやってみればいいんじゃない? 一度設定を全部コメントアウトして確認するのがいいかな vim --clean で起動してからその設定を入れて確かめてみろ $ seq 3 | vim
Vim: 警告: 端末からの入力ではありません
Vim: 入力を読込み中のエラーにより終了します...
Vim: Finished.
?? git, cd, su, cat, diff, vim...-(ハイフン)でできること@コマンドライン - Qiita
https://qiita.com/ryosukes/items/b9a3b2913f72e1127e58 >>653
無名バッファを使うっていう手は考え付かなかった。
たしかにそのほうが便利かも知れん。
今日から切り貼りするときに試してみよう。 vimの空行のチルダ(~)って変更できます?
これのせいで動作が重くなる highlight link EndOfBuffer Ignore
これで軽くなりました。ありがとうございます vim-airline の表示が頻繁に崩れます
代わりのお勧めがあったら教えてください >> 694 ありがとうございます
今 `gf` でファイルを移動すると、 `ln : 43` が `ln : 143` になりました
本来は `ln : 1` です こういうのを何とかできないでしょうか >> 696 な、なに〜〜!!
動画までありがとうございます。なら自環境が悪いのかと、色々調べたところ
vimrc から set ambiwidth=double を消したら、表示崩れが無くなりました
Vim ワカラン…… コピペしすぎて設定がとっちらかってるわ
項目別はしてるけどどうも かなりのhelpが日本語訳されてるから
その点だけでも英語クソよわの俺にはありがたいわ。 Vimってどちゃくそ日本語化が進んでるような気がするんだがなんでなの? enc=utf8にすると、■とかが半角になってしまうんだけどしかたがないのかなぁ? >>704
Windowsのgbimなんですのよ。 >>703
:set ambiwidth=double 入力中の単語を消す最も早い方法は何ですか?
具体的には
i am bord_
と入力してるときに、最後の単語のスペルミスに気づいてbordのところだけ消したい <C-o><C-w> で上書きしてたから知らんかったw bashの操作はemacsらしいが使いこなせてないな
c-aの行頭とc-eの行末くらいか Esc-fとEsc-bをAlt+fとAlt-bとかにマッピングすると捗る bash の操作ですか
C-r が便利
カーソルウオークとしては、C-a, C-b, C-f, C-e ぐらいは使うかなあ /単語
入力中にリアルタイムでハイライトする機能が実装された覚えがあるんですが
有効化する方法を教えてください >>722
set incsearch
set hlsearch Emacs教から改宗してきました。
みなさんよろしくお願い致します。 Emacsはよく左手の小指を酷使するというが
Vimは右手の人差し指を酷使しがち >>725
移動のノーマルコマンドを駆使すればそうでもないよ C-f, C-b, H, M, L, マーク以外になんかある? 行移動って割合も指定できるのな
50%で行の中心に移動とか b B w W e E f ^ 0 % $ G gg > などもよく使う fFtTと,;も使うとさらに良いね
ついついwWbBで移動してしまうけれども 俺も右手人差し指が痛くなりやすいから
hやC-hはほぼ使わないようにしてる
それでもj, u, y, nと出番は多い
vim関係なく
日本語・英語の文字出現率的にQWERTYなら右手人差し指の出番は最多なのと
多くのキーボードの構造上右手人差し指はどうしても負担がかかりやすい
マウスやタッチパッドを右手で使ってればなおさら 複数タブ表示って常用してる?
窓分割だとどうも窮屈でタブの方が好きなんだが >>736
してる。
set showtabline=2
って設定するくらいには常用してる。 起動オプションは --remote-tab-silentで
gtとgTを多用するなぁ vimの設定って/etc/vim/vimrcの方に書いた方がいいのかね
homeの設定をrootの方に書いたりしてるけど
rootとhomeと同じにすると間違いそうで ubuntu18.04にneovimの最新版を入れたいんだけど、neovimのPPAのレポジトリを使っても0.4.3しかインストール出来ない
最新版をインストールするならソースからコンパイルしなきゃ駄目ってことですかね(´・ω・`) 0.4.3が最新版
0.5はまだリリースされてないからビルドするなりnightly使うなりご自由に
https://github.com/neovim/neovim/releases >>741
ありがとうございます
とりあえず安定版の0.4.3を使うことにします 補完するとき矢印じゃなくてtabで選びたいんですけどいい方法ないですか >>743
inoremap <expr> <Tab> (mode(1) == 'ic' ? "\<C-N>" : "\<Tab>")
inoremap <expr> <S-Tab> (mode(1) == 'ic' ? "\<C-P>" : "\<S-Tab>") >>746
:h map-<expr>
式を評価した値がマッピング先になる >>744
ちょっと改良
inoremap <expr> <Tab> (state('a') ==# 'a' ? "\<C-N>" : "\<Tab>")
inoremap <expr> <S-Tab> (state('a') ==# 'a' ? "\<C-P>" : "\<S-Tab>")
mode() ではなく state() で状態確認(これで置換モード(R)と仮想置換モード(gR)にも対応)
==# で比較 744さんと748さんの式について何回も申し訳ないんですけど()内部の意味がまるでわからないです…。
vim 関数とかで検索かけてるんですけどstateとかmodeに関する詳しい記述を見つけることができませんでした
すこしばかり御教授ねがいます >>749
vim scriptのことはヘルプ引いたほうが早い
:h mode()
vim script書くならそこのeval.txtは読んでおいた方がいい 多分理解できました
state("a")の値が真のときtabを矢印に置き換えて、偽のときtabをtabに置き換えるということでしょうか 意地の悪い言い方だが矢印で補完してるVimmerがいるとは思わなかった
普通C-n、C-pでは vimに乗り換えようとしてる人なのでvimmerではないですね
今回はhelpを学んだのでvimmerに一歩近づきました 質問
Enterを押さずにファイル保存する方法を教えてください。
背景
コマンドラインモードでの数字入力を楽にしたくて、vimrcに
cnoremap <C-m> 1
cnoremap <C-,> 2
cnoremap <C-.> 3
cnoremap <C-j> 4
cnoremap <C-k> 5
cnoremap <C-l> 6
cnoremap <C-u> 7
cnoremap <C-i> 8
cnoremap <C-o> 9
と設定しました。
<C-m>が<CR>だったためEnterを押すと1がでるようになって
vimrcの保存ができなくなりました。
ファイルのバックアップは一切残していないです。 <C-x><C-n>で補完したいものを選択した状態で確定させるだけの方法を教えてください
Enterキー押すと改行されてしまうのであくまでも補完候補を確定させるだけがやりたいです {で段落移動できるけどコマンドラインモードでこれ指定できる?
sedより行操作が楽なんでexやedであれこれしたい 指定行以外の削除ってvimはどう指定する?
1,3dはできてもsedみたいに1,3!dはできないのね 最近vim使い始めました
難しー(_ _).。o○ 慣れてくると他のエディタやブラウザのテキストエリア等でjjjjjjjとかやりだす 数年前に自分でvim環境を作っています。
vimの入力モードで
../../
や
/home/user/
などのようにスラッシュまで入れるとそのディレクトリのファイル一覧のリストが出る設定を使っていました。
この機能はおそらくneocomplecacheプラグインの機能だと思っています。
neocomplecacheが更新終了しているので、neocompleteに乗り換えたのですが、上記のスラッシュでリストがでなくなってしまいました。
どうすれば出るようにできますか?
neocompleteの設定は下記URLの「Configuration Examples」にある設定をそのままコピペして使っています。
https://github.com/Shougo/neocomplete.vim >>775
プラグインの機能ではないしneocompleteも開発は終わってる
手動補完なら<C-X><C-F>でファイル補完はできる
ちなみにdeopleteなら入れるだけで自動補完の候補に出てくる :imap / /<C-X><C-F> で行けるぜ! vimで、他の高機能エディターのHTML preview的なプラグインってありますか? >>776
neocompleteも終了してましたね。。気づかなかった。
deopleteで補完できました。
ありがとうございます!
>>777
これも補完できるんですかね。
シームレスな補完ではなさそうですが標準機能でできるのはいいですね。 vim環境をlinuxのシェルスクリプトで自動作成する環境を作っています。
今回プラグイン管理をvim+neobundleからneovim+deinに移行しました。
neobundleのときはバッチでプラグインをインストールしたあとに書きファイルをシェル内のperlワンライナーで直接書き換えて
*.aaaの拡張子は"#"のコメントに追加、*.bbbは"//"のコメントに追加、などを追記していました。
hrp/EnhancedCommentify/plugin/EnhancedCommentify.vim
しかしdeinではプラグインインストールがneovim初回起動時にインストールされるため、シェルでの自動作成時に上記の
EnhancedCommentify.vimファイル
が存在しません。
そこでプラグインをインストールするためにシェルスクリプト内でneovimを仮起動させてプラグインをインストールしようと思うのですが、neovimのオプションにそのようなオプションはありますか? 何がやりたいのかわからないが-cか-Sでコマンドは外部から指定できる deinはvim初回起動時にプラグインをインストールするため、下記のようにシェル内でダミーで起動させそのままシェル内で設定追記をしようとしています。
#!/bin/sh -
# 仮起動しプラグインをインストール
nvim ~/.zshrc -c quit
# インストールされたEnhancedCommentify.vimに対して任意の拡張子(suffix1, suffix2)を追記
perl -i.org -pe 's/(xkb)/\1\\|suffix1/; s/(\|xmath)/\1\\|suffix2/' ~/.cache/dein/repos/github.com/hrp/EnhancedCommentify/plugin/EnhancedCommentify.vim
########
ちなみに
nvim *** -c quit
としたところ
^[[I
という文字列がターミナルに出てきましたが、これはこういうものでしょうか? とりあえず
>>782
のシェルスクリプトでうまくいってそうです。
>>781さんありがとうございました。 プラグインマネージャー自体が多くて意味不明なんだよな
開発者が保守を止める度に乗り換えるのもアホだし
何より拡張入れるのが目的になるのが明白だったからな もうvimはneovimにして何も拡張入れなくなった
メインのエディタはvscodeにvinプラグインをいれたやつ(´・ω・`) プラグイン管理は最低限でいいなら標準機能でどうにかなる
しかしあれこれプラグイン入れだすと扱いが煩雑になって楽にするためにちょっと凝った管理をしたくなり
色々工夫していたら「これなら人気のプラグインマネージャー入れた方が早くない?」となる 僕はプラグイン無しのVim8ちゃん、Neovimちゃんの方がカワイイの? たぶんVimちゃんの方がNeovimちゃんより長生きすると思うよ 「プラグイン」と呼べるのか分からんけど,vim-help-jpだけ,
$VIM/plugに入れてる。 職場のエンジニアに、サクラエディタなんか使ってたらばかになるからやめろと忠告したが、聞き入れてくれなかった もともとばかならしかたない
vimに変えたところで能力がアップするわけでもないし
馬の耳に念仏 矢印キーを押しながらカーソルが動いていくのをただ見つめてるSakurerと、より短いストロークで編集するにはどうしたら効率がよいのか常に戦略を立てながらの編集を余儀なくされる我々Vimmerとで、どちらが先に惚けるか答えは明白であろう サクラエディタで10年やってる奴おったが
結構速くてビビった記憶はある
でも冷静に考えれば10年もやりゃあれくらいになるかと後から思った エディタの種類でバカになるって指摘するほうがバカっぽいぞ。
少なくともその同僚からはバカじゃねーのって思われてる。
直したほうがいいと思ってるなら論理的に説得すべきだ 過去ログ漁ってたら今はずいぶんと有名な人がこのスレに出入りしてて驚いたわ エディタに限らずあらゆることに当てはまる話だけど聞かれてもいないのに勝手に自分のおすすめ紹介するのは例外なく害悪 日本語のドキュメント書くときだけはvimを使いたくない(´・ω・`) Vimのモードという概念と入力メソッドのモードという概念が競合するのは,
もうどうしようもないな。
中国人あたりが持ち前のずうずうしさ(失礼!)とかで,
Vimの挙動を変更できるようにしてくれるんじゃないかと期待してるw 日本語のドキュメント書くときもvim使っているけど、全然苦じゃない
Windowsの変換・無変換キーでIMEの有効無効をMac風にすると超快適 fやtでジャンプしづらくなるのは相当苦だと思うが使ってないのかしら vimのskk 使っても ft はあまり機能しない
一応 r は1文字確定だから 2文字以上の漢字で入力すればミスのリカバーは簡単 >>807
別のエディタ使ってもvimのf相当の移動を日本語で快適にはできないと思う
苦かどうかはあくまで他の選択肢との比較なんだからどれでも同じぐらい不便なら苦ではない .vimrcファイルの1行コメントは先頭にダブルクォーテーションですが、
複数行をコメントアウトするものは何かありますか?
c言語の /* */
pythonの """ """
のようなものを考えています。 >>810
Pythonのそれはコメントアウトではないぞ
あくまで複数行文字列
代入されてないからなんの役目も果たしておらずコメントアウトっぽく見えるだけ
Pythonには複数行コメントは無い ドキュメンテーションコメントを勘違いしちゃってるんだろうね ともあれ vim にはコメントアウトの複数行はない 拡張マシマシはデスクトップ改造みたいなもんよ
最終的に更地にするまでがお使い surround的な機能は本体に組み込んでしまっていい気がする
でもsurround.vim自体はリピートがうまくできないから公式化はダメだな 前回のカーソル位置復元と前回開いたファイル復元ってない? >>811-813
pythonのはコメントではなかったですね、失礼しました。
vimrcには複数行コメントはないんですね。 windowsでneovimのnvim-qt.exeを使っている場合に、IME入力すると、
変換中の文字幅と、変換後の文字幅が異なるのですが、設定でどうにかならないでしょうか?
(つまり、確定すると文字幅が少し広くなって、カーソルごと右へ移動する……) 2020年6月30日 Fedora,デフォルトエディタに「nano」を採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
https://gihyo.jp/admin/clip/01/linux_dt/41187/30
viは古参のUNIXユーザなどの間では根強い人気を誇るが,GUIに慣れたユーザにとっては操作が難解で,敬遠しがちな存在でもある。
FedoraのBen Cottonは,「⁠コミットしようとするとviがデフォルトで立ち上がってしまうことで,Fedoraへの乗り換えを検討していたユーザの
入り口をバリアでふさいでしまっている」(⁠Ben Cotton / Fedoraプロジェクト)と指摘している。
ごもっともで git commitでvi系以外のエディタが起動してきたとは焦る(´・ω・`) めったに起こらないことだから焦るんよ
OSインストール直後とか nanoの方が操作わからない
間違って起動したら毎回下のキーバインド見て閉じてる 四の五の言ったところでカンペがあるかどうかは雲泥の差だからアキラメロン
前知識なしで^がctrlだと気付けるかって問題はあるが Vimの組込みPythonを使ってスクラッチパッドに書いたPythonを
素早く実行したいんだけど、何か良い方法ある?
普通のファイルの場合は「py3file <ファイル>」ってやるのが手っ取り早い方法
だろうけど、スクラッチパッドの性質上実行できない。 >>832
「E471 引数が必要です」
って怒られる。
:pyの仕様を見ると,
第1引数に何らかのPythonの構文を書かないといけないみたい。
今やりたいのは
「:%」で示してくれたように単に文書全文をPythonとして実行したいってこと。 >>831
コマンド書くしかなさそうだね
function! s:Python3 (startline, endline)
execute 'python3' join(getline(a:startline, a:endline), "\n")
endfunction
command! -range Python3 call <SID>Python3(<line1>, <line2>)
:%Python3 でバッファ全体
もちろん範囲選択も可 :%!python3
外部のpython呼び出すことになるけど、どのみち依存関係でpython入ってるだろ Vimの内蔵端末(:termとかで開ける奴)で,
シェルを使う時にバックスペースとかが効かないんだけど,
どんな設定を疑ったらいい?
シェル側の問題なのかVim側の問題なのかも分からなくて,
途方に暮れてる。 bash の類いを vim 上で走らせるのはつらいのでは?
vim-shell などはあるが C-Z 使ってる >>837
シェル側の問題の可能性があるなら別のシェル入れれば分かるんじゃないの >>841
neovimから逆輸入か何かがあっていい感じになったんだな?
調べることにする >>844
:vert term 気にいった
めちゃくちゃ楽になってる プロンプトの表示内容とか色とかカスタマイズしてると:termでは表示が崩れたりするから結局普通にターミナル使うようになった 最近Vimを使いだしてvimtutorが終わった程度のレベルなんですけど
本家のGVimは存在しないのでしょうか? >>849
Windows 版なら、公式ビルドがここに置いてあります
https://github.com/vim/vim-win32-installer/releases
Linux なら、各ディストリビューションのパッケージツールで検索してください >>851
Mac の事情には詳しくないのですが、
公式バイナリは存在しないようです
https://www.vim.org/download.php#mac
> The Macintosh binaries are not on the Vim ftp site.
> They are produced by a few Macintosh lovers.
> Often they lag behind a few versions.
MacVim を使うしかないかも? そうか :terminal か
>>831は :%term python でよかった 冗談抜きに隔世の感がある。
ちょっと前に「Vim8.0! 10年ぶりの更新!」って(良い意味で)騒がれてから機能追加されすぎじゃない?
まぁ便利になってるようだから良いけどさ。 >>846と>>853
って組み合わせれる?853みたいなのを横に分割したいんだけど >>858
組み合わせられるよ
:vert %ter python >>859
なるほどそうするのか
:%vert term pythonかと思ってた 最近のVimは素でHTTP通信ができるようになったんか……。
channelっていつ使うんだと思ってたが,これの為に存在するといってもいいな。
これからはcurlみたいな外部コマンドなしに
ネットワーク上のファイルを開けるようになりそう Vimを自分でビルドするときに、
GUIは要らないけどOSクリップボード連携は有効にする、
みたいなことってできませんか。
できるとしたら./configureにどういうオプションを通したらよいでしょうか。 neovimでtermguicolorsを有効にすると、
コメントのitalicが効かなくなる?
highlight Comment cterm=italic >>862
GUIを使わないだけならconfigureのオプションに--enable-gui=noつければいけますよ
GUIの有無はクリップボードとは関係ないので、もしクリップボードが有効にならない場合は別の原因ですね >>866
netrwってHTTP通信するとき外部コマンドに頼ってなかった?
g:netrw_http_cmdみたいな変数に指定してさ。 vとかで選択した範囲を取得できる専用の関数って存在しないんだな。
普通にあるだろと思ってずっと:help索いてた…… v-mode の時の : を押した時に自動保管されるアレなどで指定するぐらい >>864
> highlight Comment cterm=italic
neovimでtermguicolorsを設定するとguiにしないといけないのね。
vimと違ってわかり難い。
highlight Comment gui=italic 自分用の補完リストをvim-lspで使いたいんですけど
参考になるプラグインか記事か何かありませんか? >>871
:h complete-functions >>872
はい、すでにその部分は実装して自分用に補完リストを作ってあります
vim-lspとの連携方法が分かりません 補完リストって言うのがなんのことを言ってるのか
自分用にLSP Serverを作ったって事? >>844
補完とかシェル操作とかこれvim8だけで実現できるん? >>875
補完に関してはVim7以前からできてなかったか?
自分で補完候補を生成する仕組みも,Vim8で新設された機能じゃないと思う。 rgとfzfである単語を検索して、マッチしたファイルとその単語のファイル内の位置情報から、その位置にカーソルをおいた状態でファイルをvimで開くzshスクリプトを書いた
この状態でカーソルを動かさず単語を検索してハイライトさせるところまでスクリプト化したいんだけど、どうすればええんやろ
単純にコマンドラインで検索した単語をvimに渡すと、カーソルを置いた場所の次に単語にマッチする場所にカーソルが飛んてましまう(´・ω・`) ハイライト専用プラグインとか?
Plug 'crazymanjinn/MultipleSearch_solarized', {'on': 'Search'} "Search >>879
:set hlsearch | let @/ = 'ある単語'
https://vim-jp.org/vimdoc-ja/change.html#quote_/
> このレジスタは :let で変更できるので、'hlsearch' による強調表示を、実際に検
> 索を行わずに別のマッチに適用することができる。 ありがとう
let使うのが良さそうだから試してるわ .viminfoが分割されるんだけど何が原因だろ
コマンド履歴が減ったと思ったらなぜか.viminf{pに移動してる sudoか何かでパーミッション変わったんじゃないか なんかこのスレか前スレでも似たような症状の人がいたな。
解決してたかどうか忘れたが。 起動時にカーソル動かさいないで単語検索してハイライトするの出来たわ
ありがとう
nvim $file_path "+call cursor($line_number, $column_number)" "+set hlsearch | let @/ = \"$search_words\"" Vimでシンタックスハイライトの設定に対するテスト機能ってありません?
「ある文書のここの部分は,xxxVariableNameという名前でハイライトされる」
みたいなことを自動で確かめたいんです。 qfixhowmのサイトが404になってる…
たまにしか使わない操作とか調べるのに使ってたのに
ヘルプはhtmlの方が見やすいからないと不便 qfixhowm直してくれたみたいだけど、急いで変換したからかいろいろ崩れてるな。
前のバックアップはないのか。兎に角ありがとうございました。 コマンドがnormal mode から呼ばれたかvisual modeから呼ばれたか判定するにはどのようにしたらよいのでしょうか?
function! Test()<br/>
if(mode()=='n')<br/>
echo "n"<br/>
elseif(mode()=='v')<br/>
echo "v"<br/>
endif<br/>
endfunction<br/>
command! -range Test :call Test()<br/>
両方ともnが表示されてしまいます。 visualモードから呼ぶとき(コマンドラインモードに入るとき)には先頭に’<,’>が付くだけだからやりたいことによる
マッピングの最初に<C-u>を付けて余計なものを消すことはよくある 行いたい動作は下記のようなマッピングを使わずにコマンドで行いたいです
" open-browser.vim
let g:netrw_nogx = 1 " disable netrw's gx mapping.
nmap gx <Plug>(openbrowser-smart-search)
vmap gx <Plug>(openbrowser-smart-search)
下記のように書くと
選択している場合は選択している単語
選択してない場合はカソール下の単語
と切り替えができません。
何かいい方法をご存じでしたらご教授お願い致します。
command! -range GoogleSearch call openbrowser#_keymap_smart_search('v')
"command! GoogleSearch call openbrowser#_keymap_smart_search('n') >>896
ありがとうございます。参考になります。
簡単にできると思いましたがいろいろな場合分けが必要なのですね。 >>895
ちなみにnmap/vmapで実現すると何か問題が生じるの?
自分は似たような動作をそういう方法で実現してて,
よろしくない挙動が発生するんであれば修正したいから
教えて欲しい。 >>898
そのmapが分からなきゃ問題を指摘しようがないでしょ >>899
nmap gx <Plug>(openbrowser-smart-search)
vmap gx <Plug>(openbrowser-smart-search) >>898
nとvでマッピング先のコマンドを同じにする(したい)なら内部で判定するしかないしそれぞれのモード専用のコマンドを作ってマッピングするならそれでもいいんじゃない
openbrowserのことは知らないが単に文字列を渡したいだけならユーザーがどうするのかは好みの問題では モード専用のコマンドというかrangeに対応してるかしてないかだな
コマンドを使うときに今は範囲指定したからrange対応版してないから通常版と判断したいかどうか >>898
別に問題があるわけではないです
個人的な感性で申し訳ないのですが、ググるという動作はなんとなくコマンドのほうが直感的と思ったからです。
なぜか考えたのですが文章を編集するわけではないからですかね
あとマッピングは汚さず、できるだけvimデフォルトで行いたいと言うのもあるかもしれません がっつりマッピング変えようかと思ったどそれ自体忘れるというジレンマ Vimはテキストエディタというよりもテキストエディタエディタと化してる人もいるんじゃなかろうかw
メジャー所のマッピングは語っても仕方ないので、個人的に細かいんだけどよく使う便利マップは挿入モードで()を()<Esc>i にするマップ
{}とか[]とか""とかも同様にマッピングしてる
Shiftを外し遅れて次までShift付きになるのが嫌いで昔から()と連続入力してから中に打つ癖があるのですごい便利
分かる人には伝わると思うw >>905
()<esc>iってスマホのIMEでよく見かけるやつか!いいやん!
こういう「細かくて地味だけどちょい便利マッピング」もっと欲しいw 暫く使ってない端末のvimの操作方法が分かりません! あんまり基本機能的な部分でマッピングしすぎるとそうなるよね
まあvimrcを持ち歩けば大体はカバー出来るけど環境によってはそれをインポートする術がない可能性もあるからなあ
そんな状況に当たったことはないけど他人の環境でカスタマイズされ過ぎたVimが思い通りに動かなくて少し困ったという逆の経験はあるわ Vimのスクリプトじゃなくて本体で対応して欲しい機能が
選択範囲の文字列で検索すること
いまのところスクリプトで実現しようとすると
https://vim.fandom.com/wiki/Search_for_visually_selected_text
ここにある通りレジスタを一つ潰さざる得ないから時偶困る。 neovimでdeinを使っています。
neovimを開いて下記コマンドをたたいてもステータスラインがでません。
set laststatus=2
しかし、インサートモードにするとステータスラインが出ます。
何か原因の推測はできますでしょうか?
dein_lazy.tomlは次レス↓ # dein_lazy.toml その1
[[plugins]]
repo = 'Shougo/deoplete.nvim'
hook_source = '''
let g:deoplete#enable_at_startup = 1
inoremap <expr><tab> pumvisible() ? "\<C-n>" : "\<tab>"
" Expand the completed snippet trigger by <CR>.
imap <expr><CR>
\ (pumvisible() && neosnippet#expandable()) ?
\ "\<Plug>(neosnippet_expand)" : "<C-r>=<SID>my_cr_function()<CR>"
function! s:my_cr_function() abort
return deoplete#close_popup() . "\<CR>"
endfunction
'''
on_event = 'InsertEnter'
[[plugins]]
repo = 'Shougo/neco-syntax'
on_event = 'InsertEnter' # dein_lazy.toml その2
[[plugins]]
repo = 'Shougo/neosnippet'
hook_source = '''
imap <C-k> <Plug>(neosnippet_expand_or_jump)
smap <C-k> <Plug>(neosnippet_expand_or_jump)
xmap <C-k> <Plug>(neosnippet_expand_target)
if has('conceal')
set conceallevel=0 concealcursor=niv
endif
'''
on_event = 'InsertEnter'
depends = ['neosnippet-snippets']
[[plugins]]
repo= 'Shougo/neosnippet-snippets'
[[plugins]]
repo = 'davidhalter/jedi'
on_ft = 'python' とりあえず `:verbose set laststatus` してどこかで値が上書きされていないかくらい確認してみたらいいんじゃない
それ以上はプラグインの Issue でやってくれ >>914
コメントありがとうございます。
そちら確認したところ、init.vimでセットされ意図した通りでした。
それと今解析していてdeinそのものを読まないようにしましたが、挿入モードの時だけステータスラインが表示され、コマンドモードに戻ると消えます。
コマンドモードでも表示するには何か設定が必要でしょうか? >>915
neovimのlaststatusはデフォルトで2だからどこかのプラグインでいじってる
再現する最小構成を探ればバグ報告ができる >>916
完全デフォルトから手打ちでステータスラインが出るか確認してみました。
結果はコマンドモード、入力モード共にステータスラインは表示されませんでした。
nvimはv0.4.3を使用していますが、ステータスラインを表示させるには何か設定が足りませんか?
下記で全設定を読まないようにする→これでデフォルト設定になるはず。
mv ~/.config/nvim ~/.config/nvim__
nvim ←起動
:set statusline=%f ←テストでファイル名だけ表示
:set laststatus=2 ←常に表示 >>917
手打ちってなんだ起動時に表示されているのがデフォルトだ
nvim -u NONEでvimrcもプラグインも読み込まれなくなる
:set rtp?で余計なものが混ざってないか? >>918
情報ありがとうございます。
以下確認しましたが、原因不明です。
他に要確認ポイントなどありませんでしょうか?
OSはCentOSです。
■バージョン、コンパイル情報確認
LINUX% nvim --version
NVIM v0.4.3
Build type: Debug
LuaJIT 2.0.5
Compilation: /local/gcc-8.1.0/bin/gcc -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -I/home/user/neovim-0.4.3/build/config -I/home/user/neovim-0.4.3/src -I/home/user/neovim-0.4.3/.deps/usr/include -I/usr/include -I/home/user/neovim-0.4.3/build/src/nvim/auto -I/home/user/neovim-0.4.3/build/include
■デフォルト起動で確認
# 下記で起動したがステータスラインが表示されない
LINUX% nvim -u NONE
# nvimを起動したままの状態でlaststatusの値が2になっていることを確認
:set laststatus
laststatus=2
# rtp確認 。個人で設定しているものは無い。(nvimデフォルト設定のままの状態と思われる)
:set rtp?runtimepath=~/.config/nvim,/etc/xdg/nvim,~/.local/share/nvim/site,/usr/local/share/nvim/site,/usr/share/nvim/site,##INST_DIR##/share/nvim/runtime,/usr/share/nvim/site/after,/usr/local/share/nvim/site/after,~/.local/share/nvim/site/after,/etc/xdg/nvim/after,~/.config/nvim/after 何を調べてその結果何を切り分けたのか理解できてないみたいだし、こういうの向いてないんじゃね ステータスラインはデフォルトで表示されるからそれを確認しようとしたんじゃないの? >>919
デフォルトでダメならもうneovimのバージョン上げるか端末を変えるかくらいだ
標準のステータスラインを諦めてpowerline系のものを使う手もある とりあえず0.4.4をインストールしましたがダメでした。
そこでさらに色々調べていると使っているTerminalが原因ということがわかりました。
結局バージョンも個人設定も関係ないところの問題でした。
お騒がせしてすみません。。 >>905
↑変数の文字列定義の時にこのレスの""のマッピングが便利そうだなと思っています。
具体的にどんなマッピングを書けばよいかわかりますか? すみません、これでいけました。
inoremap "" ""<Esc>i >>925
How about using this one. lexima.vim 上記のマッピングだと"を抜けるときの方法をどうするかと個人的には考えてしまう
あと一つだけ"を入れたいとき
visual studioはそこらへんの挙動面白い 素直にそのマッピングでいい場合の楽さよりそれ以外の面倒くささが勝つからクォートも括弧も手動だ 俺も>>905さんを参考にマッピングして使ってます(ありがとう)
>>928
抜けるときはカーソルを動かすしかないかな
でも連続入力癖がある人は元から連続入力・←・中身入力・→ってやってるのでそれがひと手間省けるってだけでも地味ながらかなり便利なんよ
そもそも連続入力しないっていう大多数?の人にはこれの良さは伝わらないんだろうなぁとは思うけども
あとこれは2回連続タイプにしか反応しないから1つだけ入れたい時は何も気にせずそのまま次をタイプすれば無問題 lexima.vim では
" で "" の入力と中に入るのが自動化される上に
"" の間で " を打つと外に出れる それ解決になってなくない?
>>905が言ってることからエスパーするに、SHIFTを押すタイミングが少ない方がいいって話じゃないの?
つーか出ていくのに"を押すって結局普通に両端で押すのとあんまり変わらなくない?
まあ俺は別にどっちも要らんからどうでもいいんだけども ESC遠くてめんどくせぇと思ったらC-[で代用できるのねこれ
説明は不十分だし初見殺しが過ぎる たしか Vim 独自のものじゃなくてコンソール環境で esc の制御文字?を入力するためのバインドだよね
BSはC-h、改行はC-jとかこの辺もそうだったような キーコードが同じになるから同じキーらしい
ttps://tyru.hatenaブログ.com/entry/2018/10/04/151740 ちなみにもっと言うと,電子的な端末(要はほとんど全ての端末)なら,
Ctrl+3でもEscと同じ内容の鍵符号が送信されるようになっている。 >>939
これの起源を昔から調べてるんだけど見付からない。
VT-100とかではなかった機能のようだから,
端末が仮想的なソフトウェアになるどこかの段階で
取り入れられた・実装された機能だとは思ってるんだけど……。 Escが遠いってもしかして小指で押そうとしてるの?
手首は固定してそこから先を回転させて薬指で打てば全く軽く打てるんだけど
2キー同時押しで中途半端な位置のキーを押すよりはるかに楽 挿入モードに入るとCapsLockキーがONになり
挿入モードから抜けるとOFFになる
そんな設定方法があったら教えてください
事情としては以下
・メインフレーム用のJCLをTeraTerm経由Vimで編集するにあたり大文字入力がメインとなる
・しかしCapsLockを常時ONで使うとノーマルモードでの操作に支障が出る SandSあたりを使うべきなのかもな
スペースキーと char 同時押しで大文字になる機能 soft capslockを使うか
OSのAPIを叩くような外部コマンドやプラグインを使うか CapsLockを使わずに挿入モードの全てのキーにSHIFT付きをマッピングするという力業は…?w 似たようなのが vim の本にあってだな
; と英文字同時押しで Sans のようなものを実現するやつだ
ジュンクドウとかあるならそこ見れば乗ってるはず
リュックの黒歴史より前の本 なんとなくtar.gzをvimで開いたらまさか中身を覗けるとは
もっと早く教えてくれよ neovim v0.4.4を使用しています。
「nvim -u NONE」でデフォルト起動させて ショートカットキーShift+r で上書きするときに、キーボード入力では正常に上書きできますが、
CentOSの中クリックペーストだと挿入(ショートカットキーi)のような動作になります。
デフォルト設定起動しているので変なプラグインで設定が変わっているとかもないはずなので原因不明です。。 >>953 です。
色々調べていたら Shift+r(置換モード) にする前のコマンドモードのときにも中クリックを押すとマウス左ドラッグで選択したテキストが挿入されることがわかりました。
普通のvimで確認するとマウス中クリックでいきなり挿入にはなりませんでした。
neovimのデフォルト設定が中クリックで挿入するようになっているのでしょうか?
マウス中クリックのキー割り当てがどうなっているか調べる方法はありますか? vscodeでvimの拡張機能を使ってます
|がカーソル位置だとして行末でセミコロンを打ちたいときみなさんはどう移動してますか?
今はescをバインドして jj -> $ と入力してます
alert( sayHi(currentUser(|)) ) 行末に移動するだけでなく入力もするなら$じゃなくてAの方がいい >>956-958
ありがとうございます!かなり便利になりました
移動して挿入モードに切り替えはすぐにでも習慣にしたいです
<C-o>は挙動が理解できなかったです
どうしてカーソル位置の移動で通常モードに切り替わるのでしょうか? >>959
<C-o>は挿入ノーマルモード
1つだけノーマルモードのコマンドを使ってまた挿入モードに戻る
この場合は<C-o>$,<C-o>A,EscAは同じ動作 imap <C-a> <HOME>
imap <C-e> <END>
は邪道ですか? >>960
ありがとうございます!<C-o>は自分のキー配置とも相性がいいので気に入りました
vimはコマンド1つ覚えると組み合わせ次第で劇的に効率アップできそうです exコマンドのキーバインドはbash互換にしてるわ
C-a, C-e, C-b, C-f とか >>964
コマンドラインの所ならその4つは設定しなくてもデフォルトでそれだぞ ミ;;;;;;;;、;:..,,.,,,,,
i;i;i;i; '',',;^′..ヽ
゙ゞy、、;:..、) }
.¨.、,_,,、_,,r_,ノ′
/;:;":;.:;";i; '',',;;;_~;;;′.ヽ
゙{y、、;:...:,:.:.、;:..:,:.:. ._ 、}
".¨ー=v ''‐ .:v、,,、_,r_,ノ′
/;i;i; '',',;;;_~⌒¨;;;;;;;;ヾ.ミ゙´゙^′..ヽ
゙{y、、;:...:,:.:.、;、;:.:,:.:. ._ .、) 、}
".¨ー=v ''‐ .:v、冫_._ .、,_,,、_,,r_,ノ′
/i;i; '',',;;;_~υ⌒¨;;;;;;;;ヾ.ミ゙´゙^′.ソ.ヽ
゙{y、、;:..ゞ.:,:.:.、;:.ミ.:,:.:. ._υ゚o,,'.、) 、}
( ヾ,,..;::;;;::,;,::;):;:;:; .:v、冫_._ .、,_,,、_,,r_,ノ′
〜((:::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::))) 〜プ〜ン
|==ロ -=・==- ‖ ‖ -===・=- ロ===
/⌒ |:/ ‖ --/ /ノ ヽ \---- ‖ ヽ|ヽ⌒ヽ
〈 |/ ヽ`======/ .⌒ ` ========ノ. ..| | 〉
..ヽ .( 。 ・:・‘。c ( ● ● ) ;”・u。*@・:、‘) /
| ( :。・;%:・。/::: ::::::| |::::::ヽ ; 8@ ・。:% ) |
\( 。;・0”*・o;/::::::::::l l::: ::: \ :。・;%:・。. )/
(;8@・。: / ̄ ̄ ̄ ̄ ̄\: ”・:。;”・.)
(0”*・ o/ .\ 0”*・o:)
. (・:%,:)|.  ̄| ̄| ̄| ̄ ...| :(:%”・) <ハゲはウンコで隠せよナー
:(; 8@・ \  ̄ ̄ ./;8@ *・)
\:::o :::: \_____/:::::::::::::::/
ヽ ヽ:::: _- ::::: ⌒:: ::::::::::-_ ノ
\ :::::::::糞ニート学:: ::: ::_/ 俺も聞きたい移動あるんだが
現在|の位置でインサートモードだとして@の位置でインサートモードにしたいとしたらどうする?普段<ESC>joだけど頻度高いから短くならないかなと
if (hoge)
{
fuga();|
}
@ >>968
一応[]で}の所に移動できるけどobject-motionsなんて覚えられる気がしない
頻度が高いならマッピングするといい 俺はそういう大きめの移動にはマウス使っちゃうかな
Vim使いにはマウスは邪道みたいな風潮があるよね
まあキーボードから手を離さなくていいってのが本来の目的であり醍醐味でもあるから気持ちは分かるんだけど、必要に応じてツールを使い分けるのも大事だと思うから面倒なことはマウスに頼っちゃう
マウスが50メートル先にあるとかでも無ければ持ち替えに秒もかからないし もう長年使ってるから今更変えられんよ…
一応補足しとくとマウス無しでも使えるし、マウス無しの環境で触ることが今でもあるから完全に頼ってるって訳でもないのよ
当然ながらちょっとした移動や編集ならマウス使わない方が慣れてるし速いしね
マウスが使える環境、使える状況なら使うことも辞さない柔軟性が大事だと思うという話ね
こんなに便利なエディタなのに一般向けに普及しないのもマウス邪道の風潮から来る敷居の高さが原因だと思ってるし 面倒な時は脳死hjkl連打
移動にマウスは使わないがヤンクが面倒な時のコピーにマウスを使う 俺も長いこと使っててマウスも自分ではほぼ使わないんだけどマウス邪道論はマジで古いし無駄に敷居を上げるだけだから良くないと思ってる
引き合いに出して悪いけど971みたいな返しは典型的な例
「今はマウスも使えるから気軽に使ってみてね、でもコマンドを使いこなすとより便利だから慣れたらそちらもちょっとずつ試してみてね」と言いたい マウス不要だのそんな閉鎖的なこと言っているから、
Fedora のデフォルトエディタからリストラされちゃうんだよな
この変更は RHEL/CentOS にもいずれ降ってくるだろうし、
ますます Vim ユーザーは減るだろうね 別にvimが消えてなくなるわけじゃないんだからデフォルトエディタであろうがなかろうが使いたければ使えばいいだけ うむ、減るのか減らないのかと問われれば減るだろうね
私がVimに触れたきっかけは大学のUNIXを触った時で、その時は最低限のコマンドで何とかしのいだ感じで
Vimウンコとしか思わなかったし、仕事で使うときもウンコ、ウンコって思いながらイヤイヤ触ったし・・
でもどうだろ? ちゃんと勉強してみようとVimチュートリアルをやっていくとだんだん楽しくなって
そのうち書籍まで買っちゃってVimに慣れ親しんできたらもう手放せないエディタになっていたんだよ
というわけで最初からnanoに触れてたならnanoを使い続けるのでは・・・とココまで書いてふと気づいた
何でウンコなVimを最終的に選んだのだろうと・・他のエディタも試してきたんだよね
秀丸とか、先輩に勧められたサクラエディタとか他にも色々触ったんだけど結局満足しなかったんだよね
だからVimを勉強してみて気に入って最終的に使い続けているわけで・・そうなんだよ
結局全人類は最終的にVimにたどり着くのだ、nanoなんかで満足するわけがない
そう! Vimこそ最高のエディタなのさっ! うーむ、sshで使うことが多いので、マウスは使えないんだごめん Row現像回りやyoutubeとかだな マウスの出番は >>973
そういえば easymotion の類は流行らなかったんだな
見てからキー入力を瞬時に判断するのがボトルネックか NERDCommenterのToggleとSexyを合わせたい(ToggleでのコメントアウトをSexilyにやりたい)んだけどオプションが見つからない
なにか方法ありますか? edとexって悪くないね
sedの練習代わりに触れたけど中々使える easymotion便利だけどな
chromeでよく使ってる(´・ω・`) -u NONE/NORCで起動するとEscやCtrl-[でコマンドをキャンセルできませんが、
他のキーでキャンセルするんでしょうか?
またこのキーは何の設定に依存してるんでしょうか? キャンセルできないわけではなくて、
ttimeoutlenが設定されてなくて一瞬入力待ち状態になるんですね。 インサートモードの日本語入力中にjjでノーマルモードに移行するために下のキーマッピングを設定したんですが、
これでも"っj"でノーマルモード移行後も日本語入力のままになってしまう...
inoremap <silent> っj <ESC>:set iminsert=0<CR>>
これって設定的には問題なくて環境の問題になるんですかね? そりゃIMEの仕組み的に仕方ない
ATOKとかなら確か自由にキーを割り当てれたからjjで英数モードみたいな設定すればいけるかも >>990
コメントありがとう。
vim単体じゃ出来なさそうか...
ahkとかでも設定出来そうな気もするから
そこら辺調べてみようかな.... >>989
そんなに難しいことせずにインサートモードの時に<C-j>でぬけるように設定はあかんのん <ESC>:silent call system('fcitx-remote -c')<CR> このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 673日 15時間 24分 58秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。