Open14

開発環境, VSCode, editor, vim, IDE, git

やまやま

VSCodeショートカット「ブラケットに移動」

VSCodeいじってたら何かのひょうしにこのページが開いた。
この2つ、知らなかった。特にJump to mathing bracketみたいなのはvscodevimでは対応しにくい (インサートモードを一度抜けないといけない)から、便利そうだ。

⇧⌘\ Jump to matching bracket
⌘] / ⌘[ Indent/outdent line

https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf

やまやま

VSCodeショートカット 「行番号に移動」

Cmd + Pで出てくるファイルを名前で検索メニューで、:4:file_name.ts:4のように指定
一方vim拡張は自分の環境では記事のようには動かなかった。しかしvscodeショートカットの方を覚えていれば十分であろう。
https://www.engilaboo.com/move-to-specific-line-vscode/

やまやま

VSCodeでいろんな拡張機能が使えなくなった

VSCodeが突然、いろいろな拡張機能、たとえばPythonのリンタ・フォーマッタのRuffが、「拡張機能を有効できません」というメッセージを出してくるようになった。1時間前には動いていたのに。

他の複数の拡張機能も起動不可能になっていた (たとえばgithub copilot)
それらを見てみると、VSCodeのバージョンと合わないらしい。しばらくVSCodeを起動しておらず10ヶ月前のバージョンであったためか?(でも、1時間前には動いていたことの説明はつかない)

ということで、VSCodeのバージョンを上げようとしたら、cannot update while running on a read-only volumeというエラーが出てできない。

そこで次の記事を見つけて、アプリケーションディレクトリから起動してみた。
https://zenn.dev/dev63/articles/e8643bd2c1abf4

そしたら、何も操作していないのにバージョンが最新版に変わっていた。

なぜだろう??キャッシュとか??
アップデートされたはずなのに、ダウンロードに時間がかかっている様子もなかった。UIも何も変わったように見えない。以下、こうなっていたのでは?という想像↓

本来は最新バージョンのVSCodeが動いていたはずが、キャッシュか何かが悪さをして、バージョン情報だけ古いものを参照していた。そのためいくつもの拡張機能がバージョン要求に合わないのをみて起動しなかった。しかし、「アプリケーションディレクトリから開く」という操作をすることによって、正しいバージョン情報を読み込むことができたので、特にダウンロードに必要な時間等もなく、もう一度VSCodeが問題なく動作し始めた。

やまやま

解決

ダウンロードフォルダのVSCodeが起動しているのが原因だった。

普段、Cmd + SpaceででてくるSpotlight検索でVSCodeを起動していたが、何らかの理由でダウンロードフォルダに置きっぱなしだったVSCode実行ファイルがインデックスされてしまい、古い(インストール当時の)VSCodeが起動していた。

というわけで、ダウンロードフォルダから実行ファイルを消したらすべての問題が解決。Spotlight検索でも最新版が起動するようになったし、そこではそもそも拡張機能エラーも何も起こっていなかった

やまやま

ウインドウを移動する方法

すでに知っていた機能だが、昔これがなくて面倒だなと思っていた機能

たとえばノートパソコン + 外部モニターでプログラミング作業をしているとする。
このとき、外部モニター全画面でエディタを表示しつつ、ノートパソコンのモニターの方にREADME.mdを表示したい、というケースがあるとする。

こうした場合にはエディタのタブを右クリックして「新しいウインドウに移動」や「新しいウインドウにコピー」を押すと良い。

でもCursor × display link外部モニターの自分の環境だと若干動作が微妙やった。
ウインドウの移動等はできるものの、キーボード入力はすべてプライマリウインドウ側が受け付けてしまう、みたいな感じ。cursor単体が悪いのか、display linkが悪いのか、どちらでもなく他の設定が悪いのかは定かでないが、これらの環境に該当する方は注意が必要。

やまやま

VSCodeVim設定

ノーマルモード時にIMEを無効化

公式で以下の方法が用意されていた。任意のサードパーティーツールによってIMEを変えられる、そしてim-selectがおすすめである、という事も書いてあった。
https://github.com/VSCodeVim/Vim?tab=readme-ov-file#input-method

自分の場合はMacOSでGoogle IMEを使用しており、バックスラッシュ\の入力のための設定もGoogle IME上で行っているので、default input methodもGoogle IMEにあわせてある。

IME切り替え用コマンドの追加

// install homebrew
brew tap daipeihust/tap
brew install im-select

settings.jsonの設定

    "vim.autoSwitchInputMethod.enable": true,
    "vim.autoSwitchInputMethod.defaultIM": "com.google.inputmethod.Japanese.Roman",
    "vim.autoSwitchInputMethod.obtainIMCmd": "/opt/homebrew/bin/im-select",
    "vim.autoSwitchInputMethod.switchIMCmd": "/opt/homebrew/bin/im-select {im}",
やまやま

gitで特定ファイルに対するすべての変更を検索

複数の作業ブランチを行ったり来たりしていると、このエラーどこかで修正したはずなんだが、どのブランチでやってたかわからない…という問題に出くわすことがある。

そこで、特定ファイルに対する変更を全ブランチに対して検索する方法を調べた

git log --all --oneline -- <FILE_PATH>
// ↑この結果のコミットメッセージ等をヒントに探していく。

また、AIに聞いてみた所ソースコードを直接クエリ条件にいれて検索することもできるようだ

git grep -e '<SOURCE_CODE>' $(git rev-list -all)

理想をいえば、特定ファイルに対するblameを全ブランチ横断で検索してくれたら良いなと思うこともあるが、大抵の場合は上記2つの方法のどちらかで探せるだろう。

やまやま

vimniumについて

ブラウザをvimライクに操作するvimniumだが、visual modeでテキスト選択までできるとは知らなかった。

/search_wordsみたいな感じでページ内検索をして目当ての文字に移動してから、vを押してビジュアルモードに入るのが使いやすいみたい。

https://qiita.com/itsumoonazicode/items/8ca0458f59ba89c1373d

やまやま

オススメ設定: inlay hints

"editor.inlayHints.enabled": "offUnlessPressed",を設定すると、 Cmd + Ctrlを押した時にインレイヒント (位置引数に名前を表示するとか) が出せる。