タグ

vimに関するhomajuのブックマーク (721)

  • 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 を素で編集してるの?
  • 【Neovim】編集中のMarkdownファイルにスクリーンショットをお手軽挿入するLuaスクリプト

    はじめに NeovimMarkdownの文書を書いていると、Neovimのエディタから出ずにさくっとスクリーンショットで画像を挿入したい瞬間がよくありませんか? 私の場合、以下のような形式でテキストファイルとその配下に画像フォルダを用意したドキュメント管理をよくします。 /docs ├── document1.md ├── document2.md └── .img └── screenshot_yyyymmdd_hhMMSS.png これを実際にやろうとすると、以下のような手順が必要です。 ①Neovimを一旦放り出して ②スクリーンショットを撮影して ③スクリーンショットを保存したファイルをコピーして ④.imgフォルダにペーストしてリネームして ⑤Neovimに戻って、画像リンクを貼る それはもう面倒で、ストレスフルでした。。 なので、お手軽に実施できるようにさくっとスクリプトを書

    【Neovim】編集中のMarkdownファイルにスクリーンショットをお手軽挿入するLuaスクリプト
    homaju
    homaju 2023/12/10
    macとlinux対応
  • NeovimをさらにLuaLuaさせた - 点と接線。

    あれから一年近い月日が経った。ひとたび完結を見た僕のinit.luaはその後も進化し続け、ずいぶんIDE的な出で立ちに変貌を遂げた。当初のサブ武器としての位置付けはどこへやら、今ではすっかり長剣の顔をして鞘に収まっている。電脳空間を切り開くデジタルロードアウトはえてして可変長であり、所有者の意向次第で自在に特性を変えられるのだ。稿では新たに増えたプラグイン群を紹介する。 jaq-nvim いわゆるタスクランナー。書いたコードを即時に実行してくれる。国内では応用の幅広さからvim-quickrunがとりわけ有名だが、元がVim用のプラグインなのでNeovim特有のUIに対応していない惜しさがあった。jaq-nvimは逆にNeovimでしか動かない代わりにfloat windowで表示できる。 設定では実行したい言語のコマンドを指定するほか、ウインドウの枠や位置を自分の好みに決められる。どう

    NeovimをさらにLuaLuaさせた - 点と接線。
    homaju
    homaju 2023/12/04
    jaq-nvimをチェックしてみる
  • Qiitaのリリースノートをtextlintでチェックするようにした - Qiita

    この記事は、Qiita株式会社のカレンダー | Advent Calendar 2023 - Qiitaの1日目の記事です。 Qiitaには、どんな機能やバグ修正がリリースされたかを確認できるリリースノートがあります。 リリースノートの更新は、機能やバグ修正をリリースする人が一緒に対応をする運用になっているのですが、開発するメンバーが増えてきたことにより、様々な記述スタイルで書かれている状態となっていました。 そこで、textlintを導入して記述スタイルを揃えるようにしたので紹介します。 textlintとは 日語などの文章校正をするためのlinterです。 様々なRuleが用意されており、「ですます調」「である調」を統一するものや二重否定を使わないようにするものなどがあります。 また、Pluginを使うことでテキストファイルやMarkdownファイル以外のファイルもlintできるよう

    Qiitaのリリースノートをtextlintでチェックするようにした - Qiita
  • ブログ校正の作法:textlintで強化するテクニカルライティング - Qiita

    HRBrain Advent Calendar 2023 1日目の記事です。 はじめに こんにちは。@yug1224(Yuji Yamaguchi)です。 今年もAdvent Calendarが始まりましたね!そろそろ記事を書かなきゃと焦っている人も多いのではないでしょうかw 記事では、私が文章作成時に気を付けているテクニカルライティングの観点と、そのために使っているtextlintのルールを紹介します。 テクニカルライティングとは テクニカルライティングとは、技術的な内容を正確かつ効率的に伝えるために誕生した文章作成技術です。 コンピューターやICT技術の発達により、今ではあらゆる職種の人に文章を書く機会があるため、テクニカルライティングの技術はビジネスパーソンにとって必須の技術となっています。 オススメ書籍 テクニカルライティングに関する書籍や記事はたくさんありますが、私は以下の書籍

    ブログ校正の作法:textlintで強化するテクニカルライティング - Qiita
  • Language Server Protocol の仕様 及び実装方法

    Language Server Protocol通称LSPの仕様と、各機能をどうやって実装したら良いかの指針を示します。 対象読者 * 言語処理系を実装する人/したい人 * Language Serverを実装する/したい人 * LSPに興味がある人、日語のまとまった情報源を探している人 * Language Serverがエディタの裏でどのようなことをしているのか気になる人 書で解説される機能は以下の通りです。 * Diagnostics (検査) * Completion (補完) * Inlay hint * Hover * Goto definition (定義へ移動) * Find references (参照を表示/移動) * Rename (名前変更) * Code actions * Code lens * Signature help * Command * Docu

    Language Server Protocol の仕様 及び実装方法
  • GitHub - anekos/telescope-rg

  • lazy.nvimへの移行(プラグインマネージャの変更) - たまにはvim

    NeoVimのライトな使い方しかしていなかったせいか、特にここ1年問題もなくフツーに使えてた。 でも、プラグインの管理に使っていたPacker.nvimのメンテナンス終了のアナウンス。 github.com NOTICE: This repository is currently unmaintained. For the time being (as of August, 2023), it is recommended to use one of the following plugin managers instead: じゃあ、ちょうどいいからプラグインの管理プラグインを変更して、プラグインも見直してみようかと。 Packerがお勧めしているのはこの二つ。 lazy.nvim: Most stable and maintained plugin manager for Nvim.

    lazy.nvimへの移行(プラグインマネージャの変更) - たまにはvim
    homaju
    homaju 2023/11/11
    lazy.nvimの基礎的な設定部分だけを書いてみた