ハイパーマッスルエンジニア

Vim、ShellScriptについてよく書く

Vim

マークダウンで書ける無料のマインドマップツール「markmap」が最高すぎた

Vim

マインドマップのツールで悩んでいるなら朗報だ。決定版をついに見つけてしまった。 マークダウンで書ける OSSで無料 見た目がおしゃれ 素のhtmlやReactに組み込める CLIツールがありGithub Actionsに組み込める vimのプラグインがある これらの特徴を持つの…

coc.vimの補完メニューの色を変える

Vim

coc.vimの補完メニューの選択中の色を変更したかったが苦戦したのでここに記す。 補完メニューの色を変えるには:h CocFloatingによるとPmenuが割り当てられていると書いてあったので、選択中の色を示すPmenuSelを変更したが反映されなかった。 " これは反映…

Vimでステータスラインを自作にしたら起動速度倍になった

Vim

vim(nvim)の起動が遅い。由々しき事態なので対処した。 ステータスラインのプラグインをやめて自作にしたら400ms -> 200msに高速化できた。 起動速度の計測 まずは計測せねばならない。こちらの記事を参考にさせていただいた。 https://zenn.dev/uu64/articl…

tree-sitter導入したメモ

エラーが出る `tree-sitter` executable not found (parser generator, only needed for :TSInstallFromGrammar, not required for :TSInstall) 最新のneovimをインストールすれば直る brew upgrade neovim --fetch-HEAD tree-sitterの設定確認 :checkhealth…

Floating Windowの変態的な使い方

Vim

これはVim Advent Calendar 2021の14日目の記事です。 NeovimにFloating Windowが実装されて以来、様々なプラグインが開発、リプレイスされてきました。 有名所でいうとgit-messenger.vimでしょうか。Floating Windowの良い使い方だなあと感動した覚えがあり…

VimでmessagesやhighlightなどのExコマンドの結果を別タブで開く

Vim

:tabe :put = execute('messages') めちゃくちゃシンプル。 今まで下記のようなredirを利用した関数を作って実行していたけど、完全に不要だった。 function! s:show_ex_result(cmd) redir => message silent execute a:cmd redir END if empty(message) ech…

macOSでneovimをbuildするとき「ninja: error: loading 'build.ninja': No such file or directory」のエラーが出る

Vim

.depsファイルが邪魔しているのでそれを削除するとbuildできるようになる。 cd neovim sudo rm -rf .deps sudo rm -rf build # buildも一応消しておく buildし直す sudo make CMAKE_INSTALL_PREFIX=$HOME/neovim/nvim install 環境 macOS BigSur 11.23 neovi…

【Neovim】好きな位置にテキストを埋め込んだりハイライトできる「ExtMark」の使い方

Vim

ExtMarkとは 指定した行、列にマーカーをセットできる。セットしたマーカー(位置)に好きな文字列を表示したり、ハイライトできたりする。 テキストの変更を追跡して表示できるので、インデント幅の表示やスペルミスを表すために使われたりする。 ヘルプは:h …

カーソル下の関数だけ実行できるVimスクリプトを作った

Vim

vimでshellスクリプトを書いてるとき、ある関数だけ実行したい、ってのがよくある。そのとき毎回コメントアウトしていたのが面倒であった。例えば下記のような場合。 main() { echo 'main' } main2() { echo 'main2' } main # main2 # mainだけ実行したいの…

M1MacBook、VimのquickrunでC#の実行環境を整える

知人がC#をやり始めて、教えてくれと言われたのでとりあえず開発環境を整えてみた。 環境 M1 MacBookAir Neovim >= 0.5 brew install monoができない arm版だとダメ的な問題でエラーが出てインストールできないので、Visual Studioから引っ張ってくるやり方…

M1 MacでNeovimをBuildする

Vim

NevimのBuild手順が少しわかりづらかったのでまとめておく。 環境 M1 MacBookAir(Big Sur) 事前準備 brew install cmake 手順 Homebrewでインストールしたnvimを上書きする場合 git clone https://github.com/neovim/neovim.git cd neovim make CMAKE_BUILD_…

Vimで特定の行だけ選択してコピーするプラグイン

Vim

vimのVISUALモードはシンプルかつパワフルで特に不満はないのだが、行を飛ばしてコピーができない。 例えば下記のようなファイルがあったとして、 line 1 line 2 line 3 line1とline3だけコピーしたいようなケース。 このような隣接していない行のコピーを実…

【Vim】aleでハイライトがされない問題の修正

Vim

色がつかなくて困っていた Lintを非同期実行できるプラグインのale。NeovimのVirtual Textにも対応していて、Lintエラーの文言を下記のように表示できる。 Virtual TextでLintエラーを表示 上記画像では黄色でハイライトされているが、以前までハイライトが…

Neovim: Floating Windowでボタンを作る

Vim

Floating Windowをボタンにしないなんてもったいない! Floating Windowを使って立体的なボタンを作ってみた。ENTERでボタンを押せる。 ボタンに見せるにはどうするか これだけでボタンに見える frontとbackの2枚のウィンドウを用意 backの色をfrontの色より…

Neovim: Floating Windowに枠線をつける

Vim

FloatingWindowには枠線をつけるオプションがない border:1pxのようなオプションは用意されていない。ただ、枠線があるように見せることは可能。 下記はこちらの記事で作成したときのもの。カレンダーを表現するのに枠線付きのFloatingWindowが必要だった。…

goyo.vim, limelight.vimで"静かな"執筆環境を実現する

Vim

goyo.vim, limelight.vimで装飾のないVim github.com github.com ステータスバーなどが消え、今書いていることのみに集中できる インストール # goyo.vim [[plugins]] repo = 'junegunn/goyo.vim' # limelight.vim [[plugins]] repo = 'junegunn/limelight.v…

Vim Short Tips Advent Calendar 2020で最高にためになったTips

Vim

Vim Short Tips Advent Calendar とは Qiitaアドベントカレンダーの1つで、「ツイート1つに収まるようなVimのTipsを書いていく」がテーマのカレンダー。ハッシュタグ#vimtips_acでTwitterを検索すれば出てくる。 結構知らなかったことやめっちゃ便利じゃんっ…

Neovim: 矩形選択したものを好きな場所に貼り付けるプラグイン nvim-block-paste

Vim

ブロックエディタっぽく、どこでも好きなところに貼り付けしたかった github.com 矩形選択したものをどこにでも貼り付けられる 使い方 インストール [[plugins]] repo = 'Rasukarusan/nvim-block-paste' 矩形選択した状態で:Blockを実行。 :'<,'>Block キー…

Neovim: サクッとFloatingWindowにテキストを表示するプラグイン nvim-popup-message

Vim

github.com :messagesの最後の行をサクッと表示している これなに NeoVim専用プラグイン サクッとFloatingWindowを表示する 現在カーソル位置のすぐ下(または上)にFloatingWindowを作成 カーソル移動したらウィンドウは即消える 引数で渡したテキストをFloat…

Neovim: VirtualTextを使ってVim上に注釈を出す

Vim

VirtualTextとは NeoVim 3.2で導入された注釈機能。行の最後にバッファとは別にテキストを表示することができる。 github.com 使い方 nvim_buf_set_virtual_text({buffer}, {ns_id}, {line}, {chunks}, {opts}) Column Column buffer Buffer番号、カレントバ…

Exコマンドの補完をfzfでやる

Vim

VimのExコマンドって結構長いものであったり、どんなコマンドがあったか全然覚えられない。 TABで一応補完は出てくるが、補完を出した後にインタラクティブに絞り込みたいときって結構あると思う。 fzfでExコマンドのフィルタリングをできるようにした コマ…

Vimに生命を吹き込む(NeoVim×FloatingWindow)

Vim

Vimに生命を吹き込む(NeoVim×FloatingWindow) はじめに この記事はHameeアドベントカレンダー13日目の記事です。 最近VimからNeoVimに乗り換えた。 VimPluginの王ShougoさんのPluginもいくつかNeoVim対応が増えてきていた(というかNeoVimにした方が楽な状態…

NeoVimのFloating Windowで遊ぶためのTips

Vim

NeoVimのFloating Windowで遊ぶためのTips この記事はVim3 Advent Calendar 2019 6日目の記事です。 NeoVimに乗り換えるきっかけにもなった、Floating Window。 このFloating Window、めちゃくちゃ遊べる要素があるなと思い、こんなものを作って遊んでいた。…

VimのMarkdownPreviewプラグイン「iamcco/markdown-preview」がグラフ、UML、Latexが描画できて色々やばい

Vim

「vim markdown」とか「vim plantuml」って調べると2015年とか古い記事が多く見つかる。 なんか直近で良い感じのないかな〜と探していたら素晴らしいプラグインを見つけた。 GitHub - iamcco/markdown-preview.nvim: markdown preview plugin for (neo)vim …

Vimでカーソル位置下の単語をGoogle検索する

Vim

プログラムを書いていると「お、なんだこの関数?」と思いググることってよくあると思う。 そんな時一々単語をコピーし、ブラウザを開き、検索バーに打ち込んで検索している自分に腹が立った。なぜこんな無駄な動きをしているんだ。 プログラムに限らずREADM…

【Tips】Vimで先頭と末尾に文字を挿入する

Vim

コマンド一発で先頭と末尾に文字を挿入したいときってあるじゃん。 そんな時にどうするかって話。 方法 とりあえず結論から話すと以下のコマンドでいける。 :%s/^/先頭に入れたい文字/g | %s/$/行末に入れたい文字/g パイプで繋げれば良かったんやな。 %sの…

vim-fzfで自作関数を実行する

Vim

vim-fzf超便利。vimを使っていてまだ入れてない人は今すぐ入れたほういい。 github.com 何ができるようになるかってvim内でfzfが使える。例えばファイルを開きたい場合にめちゃくちゃ早く開ける。 こんな感じ↓(私はCtrl-pにキーバインドして使っています) fz…

Xcode9.2でXVim2を動くようにする

巷に転がっている方法ではなぜか動かなったが、苦戦しつつも解決できたので誰かの助けになればと思い書く。 結論から言うと XVim2のブランチがXcode9.2対応ブランチでなかった Xcode/Plug-ins/XVim2/XVim2/Info.plistの15〜19行目にUUIDが記述されているが、…

Vimでもデバッグできるんすわ(Vagrant+PHP+Vdebug)

Vimでもデバッグしたい 最近var_dumpやChrome.phpを使ったブラウザに変数を表示させるデバッグ方法に疲れてきたのでVimにデバッガ入れてみるかという話。 こんな感じでブレークポイント入れたり変数の確認とかのデバッグができます。 環境 Vagrant(1.94) PHP…