タグ

vimに関するkirakkingのブックマーク (117)

  • なぜVimmerの僕はマルチカーソルを必要としないか

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

    なぜVimmerの僕はマルチカーソルを必要としないか
    kirakking
    kirakking 2024/04/19
    あ!そうか、g コマンドと normal で特定行だけマクロを適用できるのか。賢い。range (e.g. :2,4g/pat/ ...)を組み合わせたら行数指定も可能と。/g コマンドは :g/pat/d で簡単に正規表現にマッチする行を削除できるので便利。
  • Vim で日本語を使うための工夫

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

    Vim で日本語を使うための工夫
    kirakking
    kirakking 2024/01/15
    vimを使ってそこそこ経つけど、digrap機能しらなかった。
  • アドベントカレンダーもいいけど 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 駅伝もいいよ
  • 追悼 Bram Moolenaar ~Vimへの情熱と貢献を振り返る | gihyo.jp

    Bram Moolenaar the Creator of Vim 2023年8月5日、悲しい知らせが入ってきました。長年、多くのエンジニアに愛され今もなお使われ続けているテキストエディタVimの作者Bram Moolenaar氏が同月3日に亡くなったという知らせです。ショックでしばらく信じることができませんでした。 筆者は長年Vimを使い、Vimに多くのコントリビュートを行ったり、その都度Bram氏と対話したり議論したりしてきました。そのBram氏が突然、この世界からいなくなってしまったことをしばらく受け入れられなかったからです。 記事では追悼の意味を込め、Bram氏がどのようにVimの開発を始め、Vimがどのように広まっていったのか、また長年Vimを追い続けてきた筆者から見たBram氏の人物像を筆者の思いを交えて解説していきます。 Vim歴史 Bram氏についてお話しする前に、まず

    追悼 Bram Moolenaar ~Vimへの情熱と貢献を振り返る | gihyo.jp
    kirakking
    kirakking 2023/11/20
    Bram氏の「君と私には共通の言語、C言語があるじゃないか」。相手を対等と認め励ます言葉を衒いなく発言できる氏の人柄が偲ばれる。
  • Vimの思想について

    ここでいくつかのルールとして motion-count-multiplied 例えば10jで十行下へ移動、d2kで上2行を削除など operator-doubled 例えばyy, dd, cc, >>とか、2回繰り返すとカーサーのある行に動作する upper case operator 例えばc->C、d->D, y->Yのように、現在のカーサーから行の最後まで動作するケースと、対になっている(逆の機能を持つ)ケース、例えばp->P, o->O, n->N, a->A, i->I, f->Fなど)に大まかに分けられる exclusive inclusive 例えば、yiw vs yaw, cib vs cabの違いで、テキストオブジェクトの内部(inner)だけか、境界線も含めるか(around) があります。これらのルールは他のプラグインにもよくみられるので、Vim wayに慣れればプラ

    Vimの思想について
    kirakking
    kirakking 2023/10/31
    ノーマルモードとインサートモードは閲覧と編集という観点から見るべき、というのは賛成。
  • プラグインマネージャーの歴史と新世代のプラグインマネージャー dpp.vim

    始めに ddc.vim, ddu.vim の開発が一通り終了し、次に作成するプラグインについて考えていました。 バイナリ編集プラグイン ddx.vim の開発を進めることも考えていたのですが、dein.vim の開発から長い時間がたっており新たなプラグインマネージャーも出てきているので、そろそろ作り直すべきではないかと考えました。 プラグインマネージャーの機能がどんどん複雑化する昨今、プラグインマネージャーに必要な機能とは何か考えたときに、「拡張可能なプラグインマネージャーが求められている」と思ったのです。 そして今回作成したプラグインマネージャーは dpp.vim です。 dpp.vim は作成したばかりで完成度はまだ低く、dein.vim ユーザーが乗り換える機能のレベルや安定性にはなっていません。 しかし、その設計思想とインタフェースは十分固まったといえるので今回記事を書くことにしま

    プラグインマネージャーの歴史と新世代のプラグインマネージャー dpp.vim
  • 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 が亡くなりました。
  • Vimは万能 (証明編) - ちゅーたのぶろぐ

    この記事は, Vim Advent Calendar 2022 19日目 の記事です.僭越ながら初参加させて頂きます.よろしくお願いいたします. はじめに チューリング完全性の証明 Brainfu*k VimコマンドでBrainfu*k 表記上の注意 全体設計 + 置換コマンド 事前に定義するマクロ 説明 - 置換コマンド 事前に定義するマクロ 説明 < 置換コマンド 事前に定義するマクロ 説明 > 置換コマンド 事前に定義するマクロ 説明 . 置換コマンド 事前に定義するマクロ 説明 [ 置換コマンド 事前に定義するマクロ 説明 ] 置換コマンド 事前に定義するマクロ 説明 [, ]によるループの実現 条件分岐 ループ 多重ループ 動作確認 1. 基動作 Brainfu*kコード Vimコマンド 実行結果 2. ループ Brainfu*kコード Vimコマンド 実行結果 3. 多重ルー

    Vimは万能 (証明編) - ちゅーたのぶろぐ
    kirakking
    kirakking 2022/12/19
    スクリーンエディタを二次元配列と見なして、ヘッドシークを行移動コマンドでやるの賢い。その発想は無かった。
  • 今年お世話になった 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) プラグインを紹介します
    kirakking
    kirakking 2022/12/15
    ずっと vim-surround+vim-textobj-user を使ってきたけど、そろそろ sandwich に切り替えようかな。vim-parteditは知らなかったので入れよう。
  • 君はkiloを知っているか - Qiita

    Advent calendar初参加でした(// //) 期日少し遅れてごめんなさい💦 kiloとは kiloとは1000行前後のC言語ファイル1つで構築されるテキストエディターである。 それを作成してみるハンズオン(「Build Your Own Text Editor」)が公開されており、今回それをしてみたので、報告する。 きっかけ Vimがどのように文字列を表示しているのかが不思議であったので、いつか調べたいと思いつつ、C言語をしっかりと使ったことはないし、ソースを読んでもなんとなく以上のことはわからなかった。 (特に、どこで画面上の文字(の位置)が制御されているのか全然分からなかった!) そんな中、C言語でエディタを作るというチュートリアルが公開されていたことに気付いたので、練習として取り組んでみることにした。 チュートリアルの章立て Setup(セットアップ) Entering

    君はkiloを知っているか - Qiita
    kirakking
    kirakking 2022/12/15
    へー知らなかった。
  • Vimをwasm runtime化する

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

    Vimをwasm runtime化する
  • Vimmerに好きなコマンドを聞いてみた

    始めに みなさん、最近はいかがお過ごしでしょう? ぼくは最近ゴリラ.vimでヘルプを読み漁っています。 もしVimヘルプを探検してみたい方はぜひヘルプ読書会にご参加ください。 さて題ですが、 普段Vimのプラグインの人気ランキングや紹介などをよく目にすると思います。 しかし、Vimのコマンドについてのランキングや紹介はあまり見かけません。 ということで、Twitterで好きなコマンド(ノーマル、Exなど)について募集してみた結果がおもしろかったので紹介していきます。 結果 アンケート結果をカテゴライズしてみました。

    Vimmerに好きなコマンドを聞いてみた
    kirakking
    kirakking 2022/02/26
    勉強になる。最近は諸事情によりLaTeXの編集が必要だったので f と t、そして , と ; にはお世話になった。
  • 最近linuxを触るようになったのですが、なぜvimはこんなに使いづらいのですか?

    回答 (19件中の1件目) モーダルだからというのを、UIの授業で聞いたことがあります。 つまり、書き込みモード、上書きモード、コマンドモードなど、状態を常に意識し、それぞれある意味違うプログラムとして覚えなければならないということです。 ただ、他の回答者も仰る通り、「覚えやすいもの」と「便利なもの」は必ずしも同じではないので、毎日使うような道具は覚えやすさより便利さが重視されるのも間違いではないと思います。 僕自身はvimvimプラグインをそこらじゅうで使っています。殆どの機能が英文字キーだけでこなせるので、疲れない気がします。気分の問題だとも思いますが。

    最近linuxを触るようになったのですが、なぜvimはこんなに使いづらいのですか?
    kirakking
    kirakking 2022/02/04
    個人的には、マウスを一切使う必要ない統一された離散的な操作体系だからかな。普通のエディタでもShift+カーソルで範囲選択は出来るけど、ホームポジションから手を動かす必要がない vi の方がずっと早い。
  • Floating Windowの変態的な使い方 - ハイパーマッスルエンジニア

    これはVim Advent Calendar 2021の14日目の記事です。 NeovimにFloating Windowが実装されて以来、様々なプラグインが開発、リプレイスされてきました。 有名所でいうとgit-messenger.vimでしょうか。Floating Windowの良い使い方だなあと感動した覚えがあります。 今日は僕が今まで開発してきたプラグインの中で、Floating Windowを変態的に使ったものを紹介したいと思います。 はじめに 矩形選択&ペーストを可視化して直感化 テトリスペースト ボタンを作って発射する 行飛ばしで選択してコピー Vimでビートマニア(@skanehiraさん作) 最後に はじめに 記事内に折りたたまれているコードはダブルクリックでコピーが可能で、 test.vimとして保存 ->:source % -> Shift+T で実行できるようになっ

    Floating Windowの変態的な使い方 - ハイパーマッスルエンジニア
    kirakking
    kirakking 2021/12/14
    ヤバイ。そろそろNeoVimに入門するしかないのか。
  • A Vim Guide for Advanced Users

    #Tools #Vim #MouselessA Vim Guide for Advanced UsersWelcome to the third part of this series aimed to help you unleash a power never seen on Earth using the Almighty Vim. We’ll see together in this article: Some nice keystrokes beginning with g.What ranges are and how to use them.The quickfix list and the location lists.The marvelous substitute command.The crazy useful :global (or :g) command.What

    A Vim Guide for Advanced Users
    kirakking
    kirakking 2021/03/02
    "gi - Move to the last insertion you did and switch to INSERT mode." こんな便利な機能しらなかったとは。いつも g; で頑張って戻っていた。
  • Deno で Vim/Neovim のプラグインを書く (denops.vim)

    2024/02/03 に v6.0.0 がリリースされており、この記事は非常に古くなっています。 この記事の内容は Denops のプリミティブな機能のみを利用しているため v6 でも問題なく動作しますが、LSP による補完や型チェックが効かないなど、開発者体験にまつわる問題があります。 LSP による補完や型チェックを有効にし、より体験が良い開発を行うチュートリアルが 公式ドキュメント (英語) に記載されているため、ご一読ください。

    Deno で Vim/Neovim のプラグインを書く (denops.vim)
  • KEN_ALL.csv を Vim でシュッとする

    この記事は Vim Advent Calendar 2020 25日目の記事です。 はじめに 年末ですね。年賀状ですね。インターネットが普及した現代、若い世代の人達においては年賀状を交わす事は少なくなってしまったかもしれません。しかし田舎育ちの僕やある程度年配の方々の世界線では年賀状は未だ変わらず有効なコミュニケーション手段として採用されており「アイツん家の子、大きくなったな」「アイツ随分老けたな」といった思い出回帰の方法としても使われています。 さて皆さんは年賀状をどの様に作っておられますか?手書きですか?それとも「筆○2020」等といった年賀状作成専用ソフトをお使いだったりしますか?僕は毎年 LibreOffice の宛名書き印刷を使っています。 LibreOfficeで宛名印刷(縦書き/連名): ひろろろぐ LibreOffice で差し込み印刷する記事は沢山あるのですが、連名がちゃ

    KEN_ALL.csv を Vim でシュッとする
    kirakking
    kirakking 2020/12/25
    submatch, E935 これは便利。
  • vimrc の分割管理を上手くやる 2020年版

    筆者の環境について Vim にはプラグインマネージャも沢山あります。その中で僕は vim-plug を使っています。Software Design という雑誌で「Vim の細道」という連載をやっている事もあり、皆さんに一番リーチしやすいプラグインマネージャを選んでいるという事もありますが、基は「トラブルが発生しづらい」という理由で使っているのもあります。 vimrc の分割管理 ところで最近は Vim プラグインが沢山あり、個々に設定が必要な場合もあります。全て vimrc の中に書いてしまうのも良いのですが、そうするとどこからどこまでが、どのプラグインの設定か分からないといった問題が起きてしまいます。僕は vimrc をプラグイン毎に分割して管理しています。 Big Sky :: ぼくがかんがえたさいきょうの Vim のこうせい 2019年 年末版 " Vim 体の機能のデフォルト値

    vimrc の分割管理を上手くやる 2020年版
  • Vim9 script はどれくらい速いのか

    はじめに Vim というテキストエディタは、vi から引き継いだ独特な操作を提供します。そしてそれだけでなく Vim script という独自のスクリプト言語で Vim 自身を拡張する事ができます。多くの Vim ユーザの方もそれはご存じかと思います。 もしかすると知らない方もいらっしゃるかもしれませんが、昨年末から Vim の作者 Bram Moolenaar 氏が vim9 というブランチを作り今年の1月に master ブランチへマージしました(vim9 とは言えどまだバージョンは8です)。その中に含まれていた機能が Vim9 script です。 そもそも Vim script Vim script は Vim のバージョン 5.0 の頃から登場し、元々は設定ファイルである vimrc を環境により if 分岐する為に登場しました。その後 Vim script に色々な関数が足され

    Vim9 script はどれくらい速いのか
  • vim-lsp の導入コストを下げるプラグイン vim-lsp-settings を書いた。 - Qiita

    これら全ての機能は、テキストエディタと Language Server との間で JSON-RPC を使い、ソースコード体、コード補完候補、座標情報などを交換する事で実現されています。 温故知新 実は Language Server Protocol は OmniSharp というソースコード補完サーバがベースとなっています。 OmniSharp は元々、Vim で C# のコードを補完する為に作られた Vim プラグインでした。当時は Vimcurl コマンドで通信できる様に REST サーバとして作られていました。それを Microsoft が双方向の通信を行える様に通信仕様を JSON-RPC に定め、汎用化の為に仕様として策定した物が現在の Language Server Protocol です。 Language Server Protocol は Visual Stud

    vim-lsp の導入コストを下げるプラグイン vim-lsp-settings を書いた。 - Qiita