タグ

vimに関するigrepのブックマーク (371)

  • Crostini上のCLI版Vimで日本語入力とChromeOSクリップボード連携 - ふるきのガベージコレクション2

    ChromebookのLinux環境であるCrostiniを何とか使ってやろうと作業を続けている。Crostini上でもVimは使えるのだが、日本語入力をしようとすると手間がかかる。以下はfcitx-mozcが導入されていてGNOME端末上で日本語入力ができている状況を前提とした話。 最初にGUIVim(コマンドではgvim、パッケージではvim-gtk3)では日語のインライン入力ができないので、検討対象外とする。 Crostini純正端末上でもCLI版Vimは動くが、純正端末では日語が入力できない。そこで、純正端末からGNOME端末を起動し、その上でCLI版Vimを使うことになる。これで日本語入力も問題なくなった。 次の問題としてCLI版VimChromeOSクリップボードとのやり取り。通常のLinux環境(Ubuntuなど)では、Vimでの "+y コマンドで選択範囲をシステム

    Crostini上のCLI版Vimで日本語入力とChromeOSクリップボード連携 - ふるきのガベージコレクション2
    igrep
    igrep 2024/09/15
    助かる
  • Vimで記号や演算子をサクッと補完する

    この記事はVim駅伝の2024-08-23の記事です。 前回の記事はとんとんぼさんのIdeaVimの設定方法です。 次回の記事はstaticWagomUさんのstatusline隠すとかっこよくなることに気づいてしまった...です。 演算子がホームポジションから遠い問題 プログラミング言語では、各々の処理を行うため、さまざまな記号の組み合わせを使用します。 たとえば、Vim scriptで使われる演算子には次のようなものがあります。 打ちづらくないですか?? 一般的な配列のキーボードであれば、ホームポジション付近にはアルファベットが集中しているでしょう。 タッチタイピングに慣れた方でも、!=?や->といった記号列を流れるように打つのは難しいのではないでしょうか。少なくとも筆者はintと打つように!=?と打つことはできません。各々の記号が離れている上にShiftキーの切り替えもする必要があり

    Vimで記号や演算子をサクッと補完する
    igrep
    igrep 2024/08/23
  • Vimのビルトイン補完中にfuzzy matchの設定を切り替える

    Vim 9.1.0463より、'completeopt'オプションにfuzzyが設定できます。 Neovimもリリース0.10.1にはこのパッチが取り込まれているはずです。 fuzzy matchを使用すると、たとえば、zenn_articleという候補を、zenaで選択できるようになります。特に記号や数字を正確に入力しなくて良い点が便利です。 ただ、fuzzy補完はときどきマッチしてほしくない文字列にマッチしてしまうこともあるので、必要に応じて切り替えられると良いと思いました。 ということで、以下がinsert mode中にfuzzyを切り替える設定です。<c-g><c-f>にマッピングしています。オプションを切り替えただけでは補完候補が更新されないので、適当な文字を入力して即削除(a<bs>)することで候補を更新しています。 場合によっては一つもマッチせずpumが消えることがあるので、

    Vimのビルトイン補完中にfuzzy matchの設定を切り替える
    igrep
    igrep 2024/07/31
  • Vim/Neovimを通してLLMと対話する ─ prompt-bufferという存在

    LLMとの対話、Vimとの対話 昨年(2023年)はLLMがプログラミング界隈の様々なシーンで使われ始めた一年でしたね。 OpenAI ChatGPTしかり、GitHub Copilotしかり、LLMと語り合うことでプログラミングの小さな課題はいともたやすく解決されるようになりました。 とくにVSCodeGitHub Copilotとの融合が著しく、Chat用のUIが備えられており、 文脈を読んだAIと気軽に対話できる体験は、なかなかに代えがたいものがあります。 参考:GitHub Copilot Chat beta now available for every organization(GitHub ブログ) しかし、Vimにおいてそのような「対話的UI」をゼロから構築するのは、なかなかに複雑な実装を要求されることでしょう。 Terminalしかり、各種のFuzzy Finderプラ

    Vim/Neovimを通してLLMと対話する ─ prompt-bufferという存在
    igrep
    igrep 2024/01/08
  • 忘れられないQuickfix

    quickfixは、かしこくて、いつもみんなにたよりにされています。 こまっている友だちは、だれでも、きっと助けてあげるのです。 編集を加速するVimのquickfix機能 - daisuzu's notes vimgrepとQuickfix知らないVimmerはちょっとこっち来い - yuku_t@Qiita Vim初心者のQuickfixによる検索・置換入門 それに、たいへん年をとっていて、知らないバグはないというぐらい、安定していました。 quickfix.c - vim v1.14 @ Nov 2, 1991 [1] quickfixは、死ぬことをおそれてはいません。 死んでquickfixがなくなっても、historyはのこることを知っていたからです。 だから、前のように検索結果が消えてなくなっても、くよくよしたりしませんでした。 quickfixって辿れる getqflist(

    忘れられないQuickfix
    igrep
    igrep 2023/10/25
  • 大体十行くらいでcmdwinっぽく振る舞うウィンドウを作る

    この記事はVim駅伝の2023年8月25日の記事です。 q: Vimの便利機能の1つにコマンドラインウィンドウという物があります。:相当の起動のためのキーシーケンスがq:になっており、:qの誤爆で出てくるので使ってなくても見たことある方は多いのではないかと思います。 この機能は、各種コマンドラインの履歴を完全なVimのバッファとして提供してくれ、その中ではノーマルモードでできることが一通り全てできます。つまり履歴を編集するのにコマンドラインモードにいる必要がなく、Vimの機能をフル活用できるのです。 しかしながら、It is a special kind of windowと書いてある通り、特殊なウィンドウになっていて制約が強く[1]、ウィンドウを作り出す自動補完プラグインなどはまず動きません[2]。慣れてる物は使いたくなるものです。幸いVimにはコマンドライン履歴を操作するhistnr(

    大体十行くらいでcmdwinっぽく振る舞うウィンドウを作る
    igrep
    igrep 2023/08/25
  • Vimの検索で、都合がいいときだけ大文字小文字を区別する

    この記事は、Vim駅伝 2023年8月7日の記事です。 一言で言うと「:help \c」をご覧ください、で済む話なのですが、検索にもヒットしにくいお話なのでこの場を借りて共有します。 問題: :set smartcase(あるいはignorecase)じゃ困る時もある /などで検索する際、「検索文字列に大文字が含まれている場合のみ大文字小文字を区別する(それ以外は区別しない)」という設定、smartcaseは便利ですが、「小文字だけの文字列にヒットさせたい!」という場合も時にはあるでしょう。 解決策: 検索文字列に\C(バックスラッシュ、大文字のC)を含める 見出しの通り、\Cという文字列を検索する文字列に含めると、smartcaseやignorecaseをONにしていたとしても大文字小文字を区別してマッチするようになります。次のスクリーンショットはhlsearchを有効にした上で、手元の

    Vimの検索で、都合がいいときだけ大文字小文字を区別する
    igrep
    igrep 2023/08/07
    書きました。
  • Vim Boss が亡くなりました。

    2023-08-05、悲しいお知らせが入ってきました。Vim の作者 Bram Moolenaar 氏が亡くなりました。謹んでお悔やみを申し上げます。 以下は Bram Moolenaar 氏のご家族から vim_announce に送られたメッセージです。 https://groups.google.com/g/vim_announce/c/tWahca9zkt4t 親愛なる皆様へ Bram Moolenaar が 2023年8月3日に逝去したことを、謹んでお知らせいたします。 Bram はここ数週間で急速に進行した病状に苦しんでいました。 Bram は人生の大部分を Vim に捧げ、皆様が一員である Vim コミュニティを大変誇りに思っておりました。

    Vim Boss が亡くなりました。
    igrep
    igrep 2023/08/06
    本当にありがとうございました。
  • Vim での一括置換を楽に行う裏技

    この記事は Vim 駅伝 の 06/30 の記事です。 前回の記事は ryoppippi さんによる、 06/28 の「とあるコーディングチョットワカル勢のエディタ遍歴」という記事でした。 次回は 07/03 に投稿される予定です。 はじめに ファイル内の特定の文字列を一括置換する場面はよくあります。そんなとき Vim では :substitute コマンド(短縮形: :s)を用いて というコマンドを叩くのがセオリーです (cf. :h :s)。 しかしこれ、まあまあ面倒くさくありませんか? 冒頭に % を書かないといけない 冒頭の % は置換範囲を表し、ファイル全体を置換する、という意味を持ちます (cf. :h :%)。 % を書かない場合、カーソルのある行だけが置換対象となります。 でも、カーソル行だけを置換対象としたいことって…ファイル全体を置換するケースに比べればそこまで多く

    Vim での一括置換を楽に行う裏技
    igrep
    igrep 2023/06/30
    これは確かにいいなぁ
  • VSCodeが物足りない人へ AstroNvimの紹介

    はじめに みなさんはエディタに何を使っていますか? 筆者は最近、VSCodeからNeoVimに乗り換えました。 NeoVimは自分好みにカスタマイズしていくエディタです。 この記事ではVSCodeに飽きちゃった人やNeoVimを使ってみたいけど難しそうだなと思っている人に向けてAstroNvim を紹介します。 AstroNvimとはオールインワンのNeovim環境です。 カスタマイズも簡単にできるため、NeoVim初心者にはとてもおすすめです。 筆者もAstroNvimからNeoVimに入門しており、いまも使い続けています。 AstroNvim のインストール Macの場合はbrewを使って簡単に導入できます。 brew install neovim git clone --depth 1 https://github.com/AstroNvim/AstroNvim ~/.config/

    VSCodeが物足りない人へ AstroNvimの紹介
    igrep
    igrep 2023/06/07
    Spacemacsみたいなのがちょくちょくあるんだねぇ
  • とても速いVimプラグインマネージャvim-jetpack

    minpacとjetpakが他の4つよりも明らかに高速に起動していることがグラフからすぐに分りますね。そこでjetpackとminpacについて表を用いて詳しく観察してみましょう。 minpacは最小値こそjetpackよりも小さく高速に起動した記録がありますが、 最大値も大きく上にブレています。minpacの最大値はpacker,paq, vim-plugの3つの どの平均起動よりも遅くなっており最大値と最小値の幅が大きく、その分散はdeinに継いで2番目に大きい値です。したがって起動が速くなることもありますが、そのは起動速度は安定しておらず 常に高速に起動しているとは言い難いです。 jetpackは最小値こそminpacには劣っていますが、中央値、平均値ともにどのプラグインマネージャよりも小さい値を記録しています。さらに特筆すべきはjetpackの記録の分散がとても小さいことです。vi

    とても速いVimプラグインマネージャvim-jetpack
    igrep
    igrep 2023/04/07
  • GitHub - tjdevries/vim9jit: a vim9script -> lua transpiler (written in Rust)

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - tjdevries/vim9jit: a vim9script -> lua transpiler (written in Rust)
    igrep
    igrep 2023/01/14
  • Vim Online Editor - Vim Editor In Browser

    Check out my main website: Self Hosted Email Server and programmerhat.com. Is there a feature or service you're willing to pay for? Got a feature request? I'd love to hear it! I'm on Twitter @programmerhat, or email [email protected]. Hey! LOTS of exciting new features are being still developed! Open sourced on: Github: programmerhat/vim-online-editor NOTE that this is downloading 2 MB, so g

  • ChatGPT にコードをレビューして貰う

    はじめに 2022年、個人的には「AI 元年」と言って良い程、これまでは精通者しか扱えなかった AI による画像生成や対話などが、われわれ一般ユーザレイヤからも簡単に利用できるまでに AI が浸透してきた年だったと思っています。 特に ChatGPT の登場は革新的で、質問に対する回答の信用度はそれほど高くはないが、そこいらにいるいい加減な回答しか出来ない人達から比べれば、絶対的に有効な回答を自然な日語で得られる様になりました。 もっと身近に ChatGPT の良さは品質の高さは勿論あるのですが、前提としてリーチするまでの身近さもあると思っています。GitHub からソースコードを clone して、どこかに置いてある英語しかサポートしていない言語モデルをダウンロード、または時間と電気代をふんだんに使って学習させたモデルを使い、さらにはコマンドラインからモデルへのパスを指定して起動、とい

    ChatGPT にコードをレビューして貰う
    igrep
    igrep 2022/12/25
    すばらしい。
  • Vimをwasm runtime化する

    はじめに 最近Dockerwasm対応を発表していて、wasmがこれからますます盛り上がりそうな予感がしています。 一Vimmerとして、なんとかこのビッグウェーブに乗りたいため、Vimwasm runtimeにすればいいのでは?と思ったので実際に簡単なものを実装してみました。 足し算、引き算、フィボナッチ関数、分岐を動かせる程度で実用的ではありません。 Vimwasm runtime化する 上記のプラグインをインストールすれば、こんな感じで使えます。

    Vimをwasm runtime化する
    igrep
    igrep 2022/12/03
    早くVim on WasmEdge on Vimが実現するといいですね🙃
  • ゴリラ.vim #24 ~ ゆるーりと雑談の会 (2022/09/08 20:00〜)

    お知らせ connpassではさらなる価値のあるデータを提供するため、2024年5月23日(木)を以ちましてイベントサーチAPIの無料での提供の廃止を決定いたしました。 2024年5月23日(木)以降より開始予定の「connpass 有料API」の料金プランにつきましてはこちらをご覧ください。 お知らせ connpassをご利用いただく全ユーザーにおいて健全で円滑なイベントの開催や参加いただけるよう、イベント参加者向け・イベント管理者向けのガイドラインページを公開しました。内容をご理解の上、イベント内での違反行為に対応する参考としていただきますようお願いいたします。

    ゴリラ.vim #24 ~ ゆるーりと雑談の会 (2022/09/08 20:00〜)
    igrep
    igrep 2022/08/31
    こういうやり方もいいよなぁ
  • Vim で折り返し行を簡単に移動できるサブモード・テクニック

    はじめに 先日 Twittervim-jp コミュニティで、Vim で折り返し行を移動する方法についての質問がありました。 Vim に詳しくない方の為に説明すると、Vim は行指向のテキストエディタです。j/k で移動するのは行単位の為、折り返されている行であっても次の行へと移動します。 視覚的に移動したい しかし折り返されている行を視覚的な単位で移動したい事もあります。w や 80l の様に移動する方法もありますが、目的の場所に確実に移動できる訳ではありません。 その様な移動の方法として Vim には gj と gk があります。 gj or *gj* *g<Down>* g<Down> [count] 表示行下に移動。|exclusive|。行が折り返されて いる場合とオペレータコマンドとともに使われた場合は 'j' と違う動作になります(行単位ではありませんから)。 gk or

    Vim で折り返し行を簡単に移動できるサブモード・テクニック
    igrep
    igrep 2022/05/05
    とてもありがたや。gjgjと打つのに慣れちゃってるとこういうのなかなか勇気が要るけど...
  • :global と :normal コマンドを組み合わせてマクロの代替として使う - Qiita

    記事は、Vim Advent Calender 2021 その1 の20日の代理投稿です。 昨日の記事は @uyo さんの Vim Meme、明日の記事は tmrekk さんの Vim初心者のQuickfixによる検索・置換入門です。 そもそも、マクロってなに 簡単な説明になりますが、 任意の一連のキータイプを記録し、再現する機能です。 具体的には q{char}(任意の操作)q で (任意の操作) の部分を記録し、@{char} で記録した操作を再現します。 詳しくは、:h recoding を参照してください。 ところで 私はなんだかマクロ記録中に Vim に「早くしろ」と急き立てられている気分になってしまい、妙にマクロが使いにくく感じてしまってました。 なのでどうにかして他の方法を使って、マクロでできるような一気にテキストを編集するというのをやりたいなと思いました。 結果として、コ

    :global と :normal コマンドを組み合わせてマクロの代替として使う - Qiita
    igrep
    igrep 2021/12/26
    私自身これに近いことはよくやるので「別にg/^/は要らなくね?」と思ったらなるほど、executeコマンドと組み合わせるために必要なのか。
  • vimでファイルを開いたときにカーソルを戻す+α

    初めに vim helpのrestore-cursorに書いてあるTips (リンク) は、さまざまな記事で紹介されているため、設定している人も多いと思われます。 これを設定すると、ファイルを開いたときに自動でカーソルが前回あった位置に移動します。 autocmd BufReadPost * \ if line("'\"") >= 1 && line("'\"") <= line("$") \ | exe "normal! g`\"" \ | endif augroup restore-cursor autocmd! autocmd BufReadPost * \ : if line("'\"") >= 1 && line("'\"") <= line("$") \ | exe "normal! g`\"" \ | endif autocmd BufWinEnter * \ : if em

    vimでファイルを開いたときにカーソルを戻す+α
    igrep
    igrep 2021/12/19
  • VimとTUIツールをなめらかに切り替える

    VimからTUIツールを呼び出す 私はVim以外のTUI(Terminal User Interface)ツールとしてファイラにRanger、Git操作にはTigを利用しています。 TUIはそれ自体の制約によりキーボード操作のみで完結することや、開発時の基的なワークフローがターミナル内に閉じることによる環境のポータビリティにメリットがあります。 VimからはTUIツールの呼び出しは外部コマンド呼び出しの:!{cmd}やVimの組込みターミナル:terminal {cmd}でTUIツールを呼び出せます。 逆にTUIツールからエディタを呼び出すケースもあります。 たとえばファイラのRangerで選択したファイルを開く場合、環境変数$EDITORに登録されているエディタ(Vim)を使って開きます。 TigはGit操作でdiff表示しているときにeを押したときのカーソルのある行でエディタを使って

    VimとTUIツールをなめらかに切り替える
    igrep
    igrep 2021/12/15