タグ

VIMに関するhomajuのブックマーク (727)

  • Neovimのコメンティングプラグインの選び方

    コメンティングプラグインとは この記事ではコメントアウト/アンコメントを手軽に実現するプラグインをコメンティングプラグインと呼びます。 動いてる様子を見た方がわかりやすいので、Reactでよく見たソースコードでのデモをご覧ください。 便利そうですね。 必要なプラグイン デモと同じ動作をするためには、2種類のプラグインが必要です。 1つ目はコメンティングプラグイン。 もう1つは文脈に応じてコメント用の文字列(:h 'commentstring')を更新するプラグインです。 デモではTypeScript部分を//でコメントアウトし、JSX部分を{/* */}でコメントアウトしていることがわかります。 結論 解説を初めると長くなるので、先に結論を書きます。 行コメントができれば十分な場合、Neovim組込みの機能(:h commenting)とts-comments.nvimを組み合わせて使うと

    Neovimのコメンティングプラグインの選び方
    homaju
    homaju 2024/09/16
    コメントのプラグイン
  • 非エンジニアが一年間Neovimを使った感想

    はじめに これは、非エンジニアの学生が一年間Neovimを使ってみて感じたことを気ままに書いた記事です。 エディタ遍歴 まず最初に自己紹介がてらこれまでのエディタ遍歴を紹介します。 Eclipse(2022/4 ~ 2023/7) 最初に使ったエディタ(IDE)は、Eclipseです。 学校の授業で半年間だけc言語をやる機会があったので、その時に入れました。 当はVS Codeを入れたかったのですが、当時のわたしはVisual StudioとVisual Studio Codeの違いすら分からないエディタ弱者だったので断念しました。 しかし、ここでVS Codeを使っていたらおそらくNeovimには出会えなかったと思うので、結果的には幸運だったと思います。 Eclipseは、c言語を書く以外にも学校のレポートをTeXで書くために使っていました。 エディタ内で編集やコンパイルやPDFのプレ

    非エンジニアが一年間Neovimを使った感想
    homaju
    homaju 2024/09/14
  • Vimで使っている簡単キーマッピングたちを共有

    この記事はVim駅伝の2024-09-13の記事です。 前回の記事はryoppippiさんのNeovimで記録したマクロを後から編集するです。 次回の記事はyuys13さんのNeovimのコメンティングプラグインの選び方です。 筆者がVimの設定ファイルに定義しているキーマッピングの中から、簡単に書けるものをいくつか紹介します。 1行書けばVimが便利になるようなものを集めました。 どれも外部プラグインや複雑な関数は必要ありません。 Yで行末までコピー 有名なので既に使っている方も多いとは思いますが紹介。 デフォルトのマッピングでは、以下の機能が割り当てられています。 cc:行全体を編集 C:行末まで編集 dd:行全体をカット D:行末までカット yy:行全体をヤンク Y:行全体をヤンク Yだけちょっとずれているんですよね。そもそもyyと機能が被ってしまっています。 「行末までヤンク」にマ

    Vimで使っている簡単キーマッピングたちを共有
    homaju
    homaju 2024/09/13
    こういう便利なキーマップは色々見たはずなのに、いまだに新発見があるのはなんでだろ
  • lazy.nvim で dependencies を使うのはやめよう - Qiita

    lazy.nvimNeovim のプラグインマネージャです。おそらくこのジャンルではシェア No.1 の定番プラグインでしょう。Neovim の代表的な distribution である LazyVim や NvChad などでも利用されていますので、知らない内に使っている人も多いはずです。今日はそんな lazy.nvim の小ネタ。 1. lazy.nvim でプラグインの遅延読み込みをする Neovim のプラグインは、基的に Neovim 起動時に読み込むものです。しかしそのままでは、プラグインを多数インストールするとどんどん起動が遅くなってしまいます。そのため、「遅延読み込み」(lazy loading)という手法が発明されました。lazy.nvim はその名前の通り、遅延読み込みに関する機能を多く持っています。 例えば、同じく著名なプラグインである telescope.n

    lazy.nvim で dependencies を使うのはやめよう - Qiita
    homaju
    homaju 2024/09/09
  • Vimで記号や演算子をサクッと補完する

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

    Vimで記号や演算子をサクッと補完する
    homaju
    homaju 2024/08/23
  • VHS で楽に Neovim のデモ動画を録る

    この記事は Vim 駅伝 の 07/15 の記事です。 前回の記事は staticWagomU さんによる、 06/12 の「mini.nvimを使って環境構築したら優勝した」という記事でした。 次回は 07/17 に投稿される予定です。 はじめに 1ヶ月ほど前に Vim のマイナーなテクニックを紹介する記事を公開し、ありがたいことに非常に多くの方に読んでいただきました。 この記事では特にデモ動画を多く載せることを意識していました。数えてみると8つもの GIF 動画が例に用いられています。Vim を用いた編集のスピート感を視覚的に示すことで、紹介したテクニックの魅力がより効果的に伝わったのではないでしょうか。 元記事の末尾に書いた通り、「中級 Vim 操作」では VHS というコマンドラインツール (CLI) と Neovim、そして nvim-keycastr というプラグインを用いてデ

    VHS で楽に Neovim のデモ動画を録る
    homaju
    homaju 2024/07/15
    VHSコマンドでCLIの録画ができる
  • GitHub - is0n/jaq-nvim: ⚙️ Just Another Quickrun Plugin for Neovim in Lua

    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 - is0n/jaq-nvim: ⚙️ Just Another Quickrun Plugin for Neovim in Lua
    homaju
    homaju 2024/07/01
  • Neovim漂流記 - Qiita

    はじめに ここ1年でエディターを放浪してきたので振り返ってみます。 もともとVSCode を使って開発していたものの、Ruby (Rails) を開発するようになって辛くなってきたのでエディタを探す旅に出ました。 Rails ってディレクトリ構造がある程度きまってて、Controller開いたり、View開いたり、ルーティング開いたり、テストファイルにとんだり、FactoryBotにとんだり、あっちこっちいくんですよね。抱えるファイル数多い上に、定義ジャンプうまくいかず苦労しました。(当時はLSPは使っていましたが、ctags は概念すら知らなかった) Intellij とのひととき そんななか Intellij を使い始めました。強力なindexing をしてくれるので、Rails をわかってなくてもいい感じにControllerとViewとルーティングをビュンビュンとべてサイコーでした

    Neovim漂流記 - Qiita
    homaju
    homaju 2024/04/27
  • Neovim + oil.nvim + Weztermで頑張って画像を表示する

    TLDR oil.nvimで画像を選択し、Weztermで画像を表示。 画像はこちらから Neovimで画像と向き合う方法を紹介 Quicklookを呼び出す方法は簡単 今回はWeztermとoil.nvimをフル活用して、Terminal上で画像を表示する方法を紹介をメインに紹介 はじめに Vimmerたるもの、普段はTerminalに引きこもっているものです。 特にVim(Neovim)上で作業をすることが多いはず。 しかし、Terminalが苦手なファイルも存在します。 ご存じ、画像ファイルです。 これまで、自分は画像ファイルを見たいときは openコマンドで画像を開く(MacならPreviewで開く) open .でFinderを開いて画像を見る としてきましたが、やはり画像を見たいためだけにFinderを立ち上げたりアプリを起動、終了するのは面倒です。 そこで、これらを改善するこ

    Neovim + oil.nvim + Weztermで頑張って画像を表示する
  • nvim-lspの作用に少し凝ったカスタマイズを加える旅

    はじめに nvim-lspはデフォルトでかなり使いやすいですが、もう少し自分の使い方にあったカスタマズを加えたいと思うことはあります。 今回、これを設定するための方法を探してみたら、思いのほか長い旅の割に簡単な設定で片付いたので、ここに記録しておきます。 やりたかったこと nvim-lspのデフォルトの設定では、signcolumnに表示されるエラー/警告/ヒントの位置が重なると、 エラー/警告/ヒントのどれが表示されるかは予測するのが難しくなっています。 しかし、エラー/警告/ヒントの表示順を深刻度の高い方から表示したいものです。 結論としての設定 今回のやりたかったことは、次のような設定で片が付きました。 シンプルですね。 模索の旅 この設定に辿り着くまでにヘルプを読みあさったので、その課程を記録しておきます。 signの表示方法を変える設定を探す まずは、nvim-lspの設定でsi

    nvim-lspの作用に少し凝ったカスタマイズを加える旅
  • 誰でも簡単手作りわくわくオペレータ作成Neovimプラグイン

    この記事は Vim 駅伝 の 03/20 の記事です。 前回の記事は kyoh86 さんによる、 03/18 の「efm langserverでdeno fmtとprettierを使い分ける」という記事でした。 次回は 03/22 に投稿される予定です。 はじめに VimNeovim には オペレータ と呼ばれるコマンドがあります。オペレータコマンドの直後に適用範囲を指定することで、様々な編集操作を実現できるというものです。 オペレータを用いると、たとえば以下のようなことができます。 yt" と打つと、カーソルからその右の " に到達するまでの範囲をヤンク(コピー)する y: ヤンクを表すオペレータ t": カーソル直後に存在する " の直前まで移動するモーション >ip と打つと、カーソルのある段落のインデントを1段階増やす(右にずらす) >: インデントを1段階増やすオペレータ

    誰でも簡単手作りわくわくオペレータ作成Neovimプラグイン
    homaju
    homaju 2024/03/21
  • ターミナルから離れたくない…Tmux(&Neovim)の設定例🖊

    この記事の概要 tmuxneovimを組み合わせている様子… こんにちは!パン🍞と申します🏜 普段はフロントエンドを中心にパソコンをカタカタしている者です💻 私は普段のコーディング時のメインエディタとして、ターミナル環境下で、Neovimを用いています。 (Neo)Vimは、その独特な操作体系ゆえ慣れるまでがちょっぴり大変ですが、一度習熟すると非常に効率よくテキスト操作を行えるため、日々愛用しています。 また、開発作業の過程では、複数の画面を都度切り替えながらコーディングをしたり、複数のシェルを用いてコマンド操作を実行したくなる機会が多々あります。 例えば、 Viteでフロント開発環境を立ち上げてリアルタイムでコード変更を確認したい docker composeで複数のコンテナを立ち上げつつターミナルでログを確認したい それはそれとしてNeovimも並行して使いたい といった具合

    ターミナルから離れたくない…Tmux(&Neovim)の設定例🖊
    homaju
    homaju 2024/03/14
  • 2年間ほとんどメンテしていなかったinit.luaを整理した話

    はじめに 振り返ると、vimrcからinit.luaに乗り換えてluaを使うようになってから約2年ほど経ちました。 しかし、それ以降はinit.luaをまともにメンテしておらず、ずっと一枚岩のままでした。 一枚岩の設定ファイルは検索するのは便利ではありますが、見通しが悪いなとは前から感じていたので、重い腰を上げてファイル分割することにしました。 記事はどんな感じの構成になったのかについて、ざっくり書いていこうと思います。 メンテの結果 メンテ前はinit.lua一枚でしたが、メンテ後はinit.luaが7行になりました。 require('my/settings/disable') require('my/settings/options') require('my/settings/lsp') require('my/settings/autocmd') require('my/set

    2年間ほとんどメンテしていなかったinit.luaを整理した話
    homaju
    homaju 2024/02/16
    init.luaの参考。vimscriptのプラグインの参考に
  • VimによるToDo管理を支える技術

    背景 ToDo管理、大変ですよね。 世間には色んなツールがありますし、様々な方法論も溢れています。 しかしそのどれも、非常に大きな問題を抱えています。 Vimじゃない Vimじゃないんです。そう。われわれはVimに魂を奪われた悲しき獣。 Vim以外の媒体で文字を書くと、全身に蕁麻疹が出て、手足は震え視野が狭窄し、やがて死に至ります。 解決は小さく もう1つの問題として、世にある様々なToDo管理は 完成度の高い、巨大なツール が何冊も出るような、複雑な方法論 を必要としています。 そのため、学習コストが高く、始めるのも慣れるにも時間がかかります。 怠惰だからToDo管理をしたいのに、怠惰な人間には辛い初期コストを要するという理不尽。 私はそんな理不尽に抗えるほどまともな人間ではないので、小さく始めて、問題に直面するたび、少しずつ改善していくようにしたいものです。 スコープも小さく これも

    VimによるToDo管理を支える技術
    homaju
    homaju 2024/02/16
  • 新しくなったfidget.nvim

    今までLSPの読み込み中に右下でくるくるするやつくらいの認識でfidget.nvimを入れていました。 ある日Githubを見てみると、いつの間にか説明がExtensible UI for Neovim notifications and LSP progress messages.となっておりLSP専用ではなくなっていました。[1] 右下に好きな通知や進捗情報を表示できるようなので試してみます。 自由に使用できるというだけで今まで通りrequire("fidget").setup{}を書いておけばLSPの情報は表示されます。 Progress ヘルプは:h fidget.progress.handleに載っています。 使い方は、handle.create() → メッセージやパーセンテージの更新 →finish() と簡単です。 以下の例では10秒間スピナーを眺めることができます。 lo

    新しくなったfidget.nvim
    homaju
    homaju 2024/02/08
  • Vim で日本語を使うための工夫

    概要 Vim を使いはじめてから 5年ぐらいになりますが、それ以来まとまった量の文章はほとんど全て Vim で書いてきました。その中には日語の文章も多く含まれているわけですが、Vim で日語を編集する際には英語やソースコードを書くときとには生じにくい問題がいくつか出てきます。 代表的な問題としては、IME がオンになったまま normal モードに戻ってしまうと normal モードのコマンドが打てなくなることや、f<char> や / による検索で IME 切り替えのコストが生じてしまうことがあります。 最近このあたりの環境改善についていくつか行ってみて、以前より日語ファイルの編集を行いやすくなっていると感じるので、その方法を紹介したいと思います。 環境 CUI 環境の vim を前提とします。gvim の IME 連携についてはこの記事では対象としません。 課題 Normal モ

    Vim で日本語を使うための工夫
    homaju
    homaju 2024/01/12
  • GitHub - HakonHarnes/img-clip.nvim: Effortlessly embed images into any markup language, like LaTeX, Markdown or Typst.

  • Neovim Lua のための LuaLS セットアップ

    はじめに Neovim には Lua が組込まれており、設定ファイル (init.lua) やプラグインを Lua で書けます。 しかし Lua の言語機能はなかなか貧弱であり、LSP のサポートがないと体験は悪いです。 ですので sumneko 氏が開発しているこちらの Language server (以下 LuaLS と表記) を入れている方は多いでしょう。 今回は LuaLS をちゃんと設定し、vim.api やプラグインの補完などをバリバリ効くようにして快適にしていきます。 ターゲット この記事の目的は LuaLS をいい感じに設定することだけです。 nvim-lspconfig や mason.nvim などには触れません。 参考元 公式のドキュメントはこちら。 型の付け方 LuaLS に型情報を伝えるには Annotations と呼ばれるコメント記法を使います。 ここを見て

    Neovim Lua のための LuaLS セットアップ
    homaju
    homaju 2024/01/04
  • 日本語入力Vimプラグインを作ったので自慢します

    また、Shiftキーを押しながらのキー入力が負担になることの対策として、stickyという仕組みも用意されています。 このキーを押すと、次のキーがShiftされた扱いになります。以下は;をstickyとした例です。 コンセプト 上でSKKライクと書いていますが、tuskkはあくまで日本語入力補助プラグインを指向しており、SKK実装を作ることを目的としていません。 他のSKK実装でできることを諦めている部分があるため、既存のSKKに慣れ親しんでいるひとは違和感を覚える点があるかもしれません。 以下のような点が特徴的だと思います。 辞書の読み込み tuskkは SKK辞書ファイルの読み込みを行いません 。 変換を呼び出したときにripgrepを利用して辞書を検索し、それをパースして候補リストに表示します。 入力中文字の表示 SKKといえば変換開始位置を▽で表示しているイメージですが、tuskk

    日本語入力Vimプラグインを作ったので自慢します
    homaju
    homaju 2024/01/02
    これは試す!
  • Vim で SQL を素で編集してるの?

    タイトルは釣りです。 この記事は Vim Advent Calendar 2023 16 日目の記事です。 はじめに みなさんは SQL はどんな環境で編集しているでしょうか? Visual Studio Code?それとも Vim?まさか Vim/Neovim の素の状態で編集していたりしませんよね? 僕はしていました。 sqls (SQL Language Server) 以前、lighttiger2505 さんが開発した sqls に少しコントリビュートしていた頃がありました。 既に public archive になってしまっていますが、機能として実用的なままです。コントリビュートしていた頃は、あくまで OSS としての興味の方が大きく、如何に機能的にしていくかだけ着目していたため、常用はしていませんでした。 あらためて常用してみる sqls の導入 Vim から sqls を使う

    Vim で SQL を素で編集してるの?