1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

元初心者VimmerはVSCodeで今

Posted at

この記事 is なに?

エディタ遍歴が

  • 4年 : gedit(色付きメモ帳) & VisualStudio & Unity を遊んでフラフラ
  • 2年 : vim
  • 1年 : vscode

な感じの、やる気のない学生プログラマが、vimかぶれから抜けられない、現状の中途半端なvscode環境を解説します。

ちなみに、言語は、割といろいろ使います。

もともとC++をよく触っていましたが、最近数か月はReactとSpring Bootが主です。その前もPythonとかいろいろです。ラズパイもよく触ります。

vim時代の筆者の性能ざっくり

  • 超簡単な入力・移動ショートカットは習得
  • mapは登録しまくって魔改造
  • pluginも有名どころ(NERDTreeなど)は一通り入れた
  • neovimに手を出したり、deopleteとか補完に手を出したり
  • したあたりで、vscodeの補完が強いらしい、しかもvimのキーバインドが使えるらしい、ということでvscodeに転向

vscodeに移行直後の感想

よかったところ

  • 本当にvimのキーバインドが使えそう
  • 補完強い!(各言語extensionの補完を使用)
  • 初めからNERDTreeが生えている(フォルダ・ファイル一覧のことです)
  • extensionにロマンを感じる
  • 見た目がカッコいい
  • 思ったより起動が速い(他のIDEは化け物重いイメージだった)

辛かったこと

  • mapのやり方がわからず、settings.jsonでちまちま直書き
  • たまにvimとvscodeのキーバインドが衝突する
  • Ctrl + Shift + P でメニューを出すのに慣れない
  • Ctrl + Shift + @ でターミナルを起動するのが、すごく手間
  • アップデートが多すぎて、機能を追えない
  • 謎の機能・依存が多く感じた (F5は便利だけど、中で何をしているんだ...)
  • そこそこ重い

vscodeで今

以降直後から環境はあまり進化はしていませんが、ざっくりスタイルは定着してきました。

必須のextension

  • Vim
    • vimのキーバインドが使えます
  • TabNine
    • 入力補完がめっちゃかかります。なんかDeepでLearningしてるらしい。
    • ただし、言語サポートの補完と違って、Javaのimportみたいな依存関係の解決は自動化しないので注意。
  • Git系(GitLens/Git Graphなど)
    • これは便利なのを適当に。
  • Bracket Pair Colorizer
    • 括弧に色が付きます。
  • 各種言語サポート
    • 補完、デバッガ、実行、デモ、Linterなどなど、適当に。
    • syntax highlightはextensionを入れなくてもデフォルトで入っています。
  • 各種Remote
    • WSLとSSHを主に使ってます。

頻繁に使っているキーバインドや操作

  • ファイル保存 (Ctrl + s)
    • vim時代は使えなかった記憶がありますが、今は便利なので使ってます。
    • 入力モードのまま、いったんファイルを保存して別の作業をしたりできます。
  • カーソル移動 (vim系)
    • gg(最上)、G(最下)
    • 0(行頭)、$(行末)
    • f(検索)
    • hjkl(上下左右)
  • 新しい行の追加 (vim系)
    • o(下)
    • O(上)
  • コピー&ペースト(vim系)
    • y(保存)
    • p(下に貼り付け)、P(上に貼り付け)
    • yの行数指定は、settings.json内に以下を追加することで、現在の行からの相対的な行数が表示され、便利になる。
"editor.lineNumbers": "relative"
  • 入力切替
    • i(入力モード)とEsc(標準モード)の使い分け。
    • Escの代わりに、たまにjjを癖で叩いてしまうので、以下のキーバインドをsettings.jsonに追加している。このキーバインドは、同時に保存もする。
  "vim.insertModeKeyBindings": [
    {
      "before": ["j", "j"],
      "after": ["<Esc>"],
      "commands": [
        {
          "command": "workbench.action.files.save",
          "args": []
        }
      ]
    }
  ],
  • 検索、置換
    • 手早さが求められる場合は、vimの**:%s/before/after/g**
    • 慎重に作業したい場合は、vscodeのメニューから編集や置換を行う。
    • vscodeは複数ファイル横断の置換が便利。
    • リファクタリングはよくわかっていない。確認のひと手間が面倒。
  • プログラムの実行
    • F5でなぜか動くものはF5。
    • 動かないものは、ターミナルからコマンドを叩く。
  • git
    • ほぼGUIでOK。

最後に

  • キーバインドがたまに衝突するなー、と思いながら、衝突するキーバインドは一切使っていないので、どれが衝突するかはもはや忘れた。
  • dockerでどうこう、、みたいなのをやってみたい。dockerわからないけど。
  • 実はvimキーバインドから完全に足洗ったほうが作業効率いいよ、とかあったら教えてほしい...。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?