ブックマーク / zenn.dev/vim_jp (19)

  • TSでdduのカスタムアクションの作り方とPRまで

    始めに ddu.vimをお使いのみなさん、TypeScriptで設定していますか? ddu.vim体や関連するプラグインは、すべてTypeScriptで実装されていますが、設定にもTypeScriptを使用できます。 今回の記事ではTypeScriptで設定することによるメリットとして、ソースに対するカスタムアクションを例として紹介していきます。 もしTypeScriptで設定していないようでしたら、少しでも参考になればよいなと思います。 対象読者 ddu.vimvim scriptやluaで設定している人。 目標 この記事を読むことで、ddu.vimTypeScriptによる設定が、型安全になり設定が楽しいということが分かります。 非目標 TypeScriptでddu.vimの設定ができるようになるところまでは紹介しません。 あくまでもTypeScriptで設定すると、型安全で設定

    TSでdduのカスタムアクションの作り方とPRまで
    yug1224
    yug1224 2024/06/29
  • CopilotChatとNeovimでGitの効率を上げる

    LazygitでCommit Messageを作成する 最近Git Commit MessageをCopilotChat.nvimに生成してもらっているのですが、その際の便利設定を紹介します。 CopilotChat.nvimについて詳しくは以下の記事を参照してください。 これは何をしているかというと ftplugin/gitcommit.luaにCopilotChatの設定を追加 gitcommitのバッファが開かれた時にCopilotChatを自動で起動 こうしておくことで shell commandでgit commitを実行するとNeovimが立ち上がる CopilotChatが自動で起動してCommit Messageを生成してくれる c-yで生成されたCommit MessageをBufferに貼り付ける。気に入らなかったら <leader>cで再生成 :qqでBufferの保

    CopilotChatとNeovimでGitの効率を上げる
    yug1224
    yug1224 2024/06/13
  • なぜVimmerの僕はマルチカーソルを必要としないか

    はじめに VSCode などのテキストエディタには、マルチカーソルという機能があります。 これは、エディタ上に複数のカーソルを出現させ、一度に複数の場所に同じ操作を行うことができる機能です。 VSCode上でのマルチカーソル 自分はVSCodeをメインとしていた時にはこの機能を多用していたのですが、Neovimに移行してから一切使っていません。 一応Vim/Neovimにもマルチカーソルを実現するプラグインがいくつか存在します。 ですが、一度は入れてみるものの結局使わないままアンインストールしてしまいました。 ではなぜ、マルチカーソルが必要なくなったのか。 それはVim/Neovimの操作体系/機能が十分に強力であるので、マルチカーソルを使わなくても同じことができるからです。 この記事では、自分がVSCodeのマルチカーソルで行っていた操作をVim/Neovimの操作体系/機能でどのように

    なぜVimmerの僕はマルチカーソルを必要としないか
    yug1224
    yug1224 2024/04/19
  • とりあえずvimを使えるようになりたい人のための記事

    始めに 私が「Vimはいいぞ」って言っていると、「どうやって始めたらいいですか?」という質問がたまにあります。 今回はそんな人に向けて、「Vimの始め方指南書」になったらよいなと思って書いていきます。 上記のVimmerレベルをベースに紹介していきます。 目標 Vimの流儀に沿った操作方法を覚える InsertModeでカーソル移動しない カーソル移動はNormalModeで行う カーソルキーは使わず、代わりにh/j/k/lを使う .vimrcを作成する 最低限の.vimrcを作成して、ちょっと快適に操作できるようになる プラグインのインストールを次のステップとして視野に入れる あくまでも視野に入れるだけ、プラグインのインストールはしない 非目標 Vim使いこなせるようになる この記事でそこまで誘導することは目標ではない プラグインをインストールする 目標でも記載しているが、プラグインのイ

    とりあえずvimを使えるようになりたい人のための記事
    yug1224
    yug1224 2024/04/17
  • VimによるToDo管理を支える技術

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

    VimによるToDo管理を支える技術
    yug1224
    yug1224 2024/02/15
  • denoプロジェクトの依存は積極的に更新していきたい

    悩み 一般的なVimmerはDenoを使った開発プロジェクトが増えがちです。 なぜならdenops.vimを使ったプラグイン開発はVimmerの義務です。 Vimmer、あなたはdenops.vimプラグイン開発者ですか?ZAP ZAP ZAP やがて増えゆくプロジェクト、増え続ける依存。 見たくないから見ない。気がついても更新しない。Dependabotに言われてもマージしない。そして破局を迎える。 udd便利 denoの依存を、一括で更新するuddというツールが便利です。 とでもしてやれば、配下の.tsファイルの依存を更新してくれます。 しかし、プロジェクトが増えてくるとこれを1つ1つのプロジェクトに実行するのも骨が折れる物です。 スクリプトしよう 困ったら、スクリプトでも書けば良いんです。 私の例(zsh)を貼っておきますが、あくまでも私の例です。次節で少し流れと、肝心な部分を説明し

    denoプロジェクトの依存は積極的に更新していきたい
    yug1224
    yug1224 2024/02/06
  • Vimを勧めるときのすヽめ

    始めに 最近、業務で自分のVimを使いながら、Vimの良さを伝えています。 そんな中で分かったことが、Vimの良さを伝えるときに相手にとって一番有益な情報は、Vimの中で生活することではないということです。(それは当にそう、何を当り前のことを…。) そもそも普段VSCodeやIDEといったエディタを使っている方からすると、Vimは不便なエディタであり、サーバーに入ったとき止むを得ず使うエディタなのです。 普段Vimmerが何気なく使っているキーバインドでも、Vimを使い慣れない人からしたら、目から鱗の超絶便利機能だったりします。 この記事ではVimの良さを伝えたいけど、何を教えると喜んでもらえる操作なのか、それに少し気がついた気がするので、それを共有したいと思います。 対象とする読者 ある程度Vimの操作ができる人で、Vimの良さを伝えたいという思いがある人。 注意点 無理に勧めない。

    Vimを勧めるときのすヽめ
    yug1224
    yug1224 2024/01/24
  • Vimプラグインマネージャー『dpp.vim』への移行と設定方針

    始めに 年末年始の休みでNeovimプラグインマネージャをdein.vimからdpp.vimに移行しました。 dein.vim自体も難しいプラグインマネージャではありますが、dpp.vimはさらに上を行く難易度です。 また使用者によって構成や設定方法は違う可能性があり、応用力が求められるプラグインマネージャです。 今回の移行作業に際して、私の構成や設定方針を記事として残しておきます。 基的な設定や使い方に関しては、Shougoさんの記事をご覧ください。 もくもく会はいいぞ 年末年始の2023-12-28にvim-jpで開催された 『新宿もくもく会』 では、このdpp.vimの移行作業というテーマで参加しました。 当日以内での移行とは行きませんでしたが、もくもく会という集中できる空間もあり、よい刺激を受けながら作業ができました。 当日は悩んでいる様子しか見せることができませんでしたが、無事

    Vimプラグインマネージャー『dpp.vim』への移行と設定方針
    yug1224
    yug1224 2024/01/16
  • Vim で日本語を使うための工夫

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

    Vim で日本語を使うための工夫
    yug1224
    yug1224 2024/01/12
  • アドベントカレンダーもいいけど Vim 駅伝もいいよ

    この記事は Vim advent calendar 2023 の1日目の記事です。 明日は @kyoh86 さんの記事が公開される予定です。 また、Vim 駅伝 の12/01 の記事でもあります。 前回の記事は Atusy さんによる、 08/18 の「gin.vimでgitの差分を快適に閲覧する | Atusy's blog」という記事でした。 次回は 12/04 に投稿される予定です。 はじめに 記事は Vim 駅伝という記事投稿・集約サービスの宣伝です。アドベントカレンダー初日にアドベントカレンダーと全く異なるサービスの宣伝をする暴挙をお許しください。 Vim 駅伝とは 今年もアドベントカレンダーが始まりました。興味ある分野、好きな分野の記事が毎日公開される、エンジニアやプログラマにとって嬉しい25日間です。Vim アドベントカレンダーの1日目であるこの記事を開いてくださった方も、

    アドベントカレンダーもいいけど Vim 駅伝もいいよ
    yug1224
    yug1224 2023/12/03
  • vimを切っ掛けにエンジニアになった話

    はじめに 前回エンジニアになってから1年間の成果のような記事を書きましたが、エンジニアになる切っ掛けが今回の記事になります。 というのは建前で、これはVimConf 2023 Tinyの懇親会でLTの登壇することがあり、急いで書き上げた内容を駅伝用に仕立てたものです。 前職は警備員 時は2020年。 当時は警備員をしていましたが、もともと子供の頃からLinuxを知る切っ掛けがあり、流れでPythonやCを簡易的に触る機会がありました。 コロナ禍ということもあり、暇潰しでエクセルVBAを使って現場の仕事の改善をやりだしたのが切っ掛けでした。 そこで収まっていたプログラミング欲が復活し、プログラミングを勉強をし始めました。 最初に触ったエディタはAtom 改めてプログラミングを勉強しなおそうとして使い出したエディタは、今は亡きAtomでした。 VSCodeも登場していましたがその選択は外れてい

    vimを切っ掛けにエンジニアになった話
    yug1224
    yug1224 2023/11/28
  • Vim/Neovimのプラグインマネージャーを悪用してCLIの管理ツールとして使う

    TL;DR CLI ツールを管理する方法として、Vim/Neovimのプラグインマネージャーを使うと意外と便利 はじめに 皆さんはCLI ツールをどのように管理していますか? 私はmacOSで使うツールの管理に以下のパッケージマネージャーたちを使っています。 汎用的なパッケージマネージャー aqua - YAMLでDeclarativeにツールを管理できる。極力これで管理したい Homebrew - 有名なパッケージマネージャー。macOSのデファクトスタンダード。Aquaで管理できないツールを管理する 言語ごとのパッケージマネージャー volta - Node.jsのバージョン管理ツール。Node.jsのバージョンを切り替えるのに使う rye - Pythonのバージョン管理ツール。Pythonのバージョン/仮想環境/ツールを管理するのに使う rustup - Rustの管理ツール。Ru

    Vim/Neovimのプラグインマネージャーを悪用してCLIの管理ツールとして使う
    yug1224
    yug1224 2023/10/23
  • denols/typescript-lsのLSPスイッチングは意外と気を遣うよという話

    Language Server使ってますか Language Server便利ですよね。 Vim界隈が端緒となって生まれたLSPですが、今やVisual Studio Codeが標準でサポートしていることもあり、 エンジニアを支える重要な技術です。 denols v.s. typescript-ls ところで、Language Serverと呼ばれるところからして、サーバーは各言語に対して提供されています。 しかし、言語が同じだからといって、その解釈(意味)が単一であるとは限りません。 最近特に大きな分流が起きているのがおそらくDenoです。 denolsとtypescript-lsはともにTypeScriptを対象にしているため、ごく一般的な識別方法としての「拡張子」が役に立ちません。 どちらもfoo.tsのように、同じ拡張子を持っています。 それゆえに「このファイルがどちらのLangu

    denols/typescript-lsのLSPスイッチングは意外と気を遣うよという話
    yug1224
    yug1224 2023/10/09
  • 「commit messageを考えてる間によしなに git hooks を実行しておいてね!」を実現するneovimの設定をかいた

    TL;DR Git の commit message を考えている間に pre-commit script を実行するneovimの設定を書いた CLIから git commit -n で neovim を立ち上げて使う 今はいろいろ雑なので、今後は設定を切り出してプラグイン化/CLI Tool化したい はじめに ある日、いつものようにThe Engineers' Paradiseで喋っていると、da-ja-re王ことkuuさんの gitcommit の設定が話題になりました。 この設定は、「gitのcommit messageを打っている間に .git/vim にあるスクリプトを実行してくれる」設定です。 「確かにcommit message を考えている間にスクリプトを実行できたら嬉しいだろうな」 「これをgit の git hooks の実行に使えたら!」 ということで、このアイデア

    「commit messageを考えてる間によしなに git hooks を実行しておいてね!」を実現するneovimの設定をかいた
    yug1224
    yug1224 2023/08/16
  • Denopsでプラグインを作るときのTips

    はじめに DenopsはJavaScript/TypeScriptのランタイムであるDenoを利用してVim/Neovim双方で動作するプラグインを作るためのエコシステムです。 簡単な概要についてはありすえさんの記事を読んでほしいのですが、この記事ではDenopsを利用してプラグインを作るときに役立つTipsをいくつか紹介したいと思います。 Tips クライアントのメタデータを取得する 今プラグインが動いているのがVimNeovimかで分岐することはよくあるパターンでしょう。 Vim scriptではhas('nvim')で判定しますが、Denopsでは関数を呼ぶための通信が発生するので良くありません。 かわりにdenops.metaからメタデータを参照できます。 標準モジュールで静的型の支援を受ける Vimの関数や変数にはdenops.call()やdenops.eval()からアクセ

    Denopsでプラグインを作るときのTips
    yug1224
    yug1224 2023/07/04
  • Vim での一括置換を楽に行う裏技

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

    Vim での一括置換を楽に行う裏技
    yug1224
    yug1224 2023/07/01
  • Vim Input Method Editor

    この記事はVim駅伝の7目の記事です。 VimをIME代わりにするVIMEというソフトウェアがvim-jpで紹介された際に試しましたが上手く動かなかったので、カッとなって作ったスクリプトを紹介します。 #!/bin/bash -u wezterm start --class Floaterm nvim /tmp/clip || exit 1 if [[ -e /tmp/clip ]]; then head -c -1 /tmp/clip | xclip -selection clipboard notify-send -t 1000 copied rm -f /tmp/clip fi すると Mod4(Super)+c を押すと画面中央にWezTerm+Vimが立ち上がります。後はコピーしたい内容を入力し保存終了したらクリップボードにコピーされるので貼り付けるだけです。自作の日本語入力

    Vim Input Method Editor
    yug1224
    yug1224 2023/03/16
  • vimとdenoでZennの執筆環境を作る

    動機 アドベントカレンダーに参加をしたものの何を書こうか悩んでいたときvim-jpのSlackにこのような発言がありました。 denoの1.28がリリースされたことにより--unstableフラグを使わずにnpmパッケージが扱えるようになりました。それによりZennへ記事を投稿するためにNode.jsを入れなくてもよいのではないかと考えこの記事を書こうと思いました。 Zennの記事を執筆するにあたり、 zenn-cli textlint これらが動作すれば快適に記事を執筆できるため、この記事では denoからtextlintを動作させる lspとtextlintの連携 の2つを目標として進めていきます。 私の使用している環境は以下のとおりです。 $ uname -a Darwin makkubukkukun 21.3.0 Darwin Kernel Version 21.3.0: Wed

    vimとdenoでZennの執筆環境を作る
    yug1224
    yug1224 2022/12/21
  • 今年お世話になった 12 個の Vim (Neovim) プラグインを紹介します

    この記事は Vim advent calendar 2022 その1 の12日目の記事です。 昨日は@isobe_mochiさんの記事「tataku.vim というプラグインを作っている話」でした。 明日は @hanlio さんの記事が公開される予定です。 はじめに 2022年ももうすぐ終わりそうですね。今年は Vim に関するお仕事がいただけたり、設定ファイルを Vim script から Lua に移行したりと、Vimmer としては非常に充実した一年となりました。これも Vim/Neovim コントリビュータの方々と、数多のプラグイン開発者のおかげです。当にありがとうございます。 そこで記事では、私が普段使っている Vim (Neovim) プラグインを主観強めで紹介します。私が普段メインで使っている Neovim には 2022/12/11 現在 91 個のプラグインが入ってい

    今年お世話になった 12 個の Vim (Neovim) プラグインを紹介します
    yug1224
    yug1224 2022/12/12
  • 1