vimコミュニティに2ヶ月入って、vscodeに戻ってみる。
初めに
あけましておめでとうございます。今年もよろしくお願いします。
lazyvimに2ヶ月入って、vscodeに戻ってみる。というタイトルになっていますが内容としては昨年学んだことの振り返りと、vscodeで実装したい目標を書いていきたいと思います。
自己紹介
- AWS開発者として4年目 27歳 石川県の金沢市出身
- AWS関連としては主にIaC(Infrastructure-as-Code)AWSで作成されるサービスのコード化を実装しており、cloudformation, AWS CDK(typescript), github, gitlabを触ります。
- 言語としては python, nodejs, typescript, go,shell scriptを使用しています。
エディター遍歴
自分のエディター遍歴はおそらく2016年から書くことになるかと思います。
2016 地元でCSのある大学に入学
terapad (c言語)
↓
visual studio (c++)
↓
vim, kate (c言語 c++) 某教授の用意するオレオレlinux mint VM使用
↓
branket (HTML, CSS)
↓
vscode
↓
android studio 該当の授業のみ
↓
TeXstudio (卒論作成) 某教授の用意するオレオレlinux mint VM
↓
typora
↓
marktext
↓
neovim
他にもeclipsやnetbean,QTeditor,sublime text,processing のエディタも使っていたと思うけど印象的なエディタ達を上げました。
一年間の振り返り
10月
ubuntuのデスクトップと開発環境をいい感じにまとめてくれるomakubを使用してみる。推奨のエディタがNEOVIM(LazyVim)なので開発者の推奨環境に従い使用することとします。
10/18 lazyvimの操作方法についての記事を作成
LazyVimを初めて使うので使用方法についてまとめました。
10/18
vim-jp slackに入りました
vimの相談,vim radioのお便りフォームに投稿ができます。
vim 以外にも、emacsやvscodeを使っている人が話し合っていたり
ガジェットの購入についての相談や、go言語やhaskel、Windows、linuxの相談ができる 日本最大のエンジニアのコミュニティのチャンネルになります。
slackのリンクとradioのリンクをおいておきます。
11月
11/6 lazyvim のプラグインイン管理
lazyvimにプラグインを追加する方法についてまとめました。
11/23
vim conf 2024に参加
Vimのメインメンテナーの話やいろいろなvimに取り組む姿勢について学ぶことができました。
こちらにvimconf2024のyoutubeのリンクをおいておきます。
興味があれば次回のvimconfに参加してみるといいと思います。
12月
12/04
lazyvimの遅延読み込み (lazyvim load lazy plugin)
12/11
neovimプラグインの作成 lua
12/11 nixos始める
vimコミュニティとは
vim コミュニティは1000人以上のエンジニアが集まった巨大なコミュニティです。
vim コミュ二ティと書いてありますがvimに限らず、go言語やhaskel、Windows、linuxの相談、が日本語でできます。
エンジニア的な話以外にも旅行や、料理、映画、読書等の趣味の会話チャンネルも存在します。
今年の7月からradioもやっています。
vimコミュニティから学んだこと
今まで主にVScodeまたは Visual Studioでプログラムを書きましたが、あまりカスタマイズすることなくプログラムを書いてきました。
設定したといえばVisual StudioでC++を触るときにインクルード設定と、リンカーの設定はしましたがそれ以外でエディタで何か設定した記憶はありません。
pluginについて
vimでプログラムを行う場合には基本的にあまり機能が入っていないので、快適な開発を行うにはpluginを入れないといけないです。
vscodeでよくある入力保管もnvim-cmpがないと使えなかったり、tree-sitterを入れないとハイライトが対応していないものがあったりするためvimを使い始めたときにはじめてpluginを意識し始めました。
コパイロット llmについて
AIに関しても使ったことはなかったのですがvim-conf2024でnvimでlocal llmを使用することについて発表がありコパイロットのようなAIをvimで使用する際の方法を理解できました。
youtubeのビデオのリンクをおいておきます。
Vim meets Local LLM: Edit Text beyond the Speed of Thought
lsp
これまでのエディタではIDE各自がそれぞれが言語仕様を作成して保管機能を作成していました。
これでは無駄が多いだけでなくエディタごとに言語サポートが異なったり、機能が違ったりといったことがあるため
vim, vscode, intellijが共通して使用できる言語機能を共通して使用する取り組みのことを**LSP
(language server protocol)**と呼びます。
以上がvimコミュニティに入って学べたことになります。2か月しか入っていませんがvimコミュニティに入ってよかったなと思います。
vim から vscodeに移したい内容
dotfileの作成
C:\Users\{user} {user}の部分は自分がWindows起動時に使用しているユーザー名に代わります。
vim コミュニティでは毎週土曜日 23:00からvimrc読書会を開催しています。
vimrc読書会では、それぞれの担当者がvimの設定を持ち合って一緒に読みながらに1時間会話をしています。
linuxのホームディレクトリにはドット(.)から保存されているファイルが置かれている。
windowsの場合にはC:\Users\{user}\AppData\
が隠しファイルが置かれている。
この場所には個人の設定ファイルが置かれており、このフォルダーを別の環境に入れることで元の設定と同じ設定を別のPCでも準備することができます。これをdotfileと呼びます。
例えばWindowsのvscodeの場合C:\Users\{user}\AppData\Roaming\Code\
この場所にvscode設定データが保存されている。実際に開いてみると拡張機能の一覧(C:\Users\{user}\.vscode/extextions.json)
があったり、現在指定しているvscodeのカラーテーマやvscodeのprofile(C:\Users\{user}\AppData\Roaming\Code\User/profiles)
が存在していたりします。
vscode のlsp導入
vscodeは electronを採用しているためnodejsについては言語補完をしてくれます。
他の言語の場合に対応していない場合があるためlspを導入したいと思います。
nixOS(WSL) 環境の導入
NixOSは完全にコード管理されたOSを作成できる特徴を持ったOSです。
NixOSはNix言語によって宣言的に環境を記述します。
バージョンはハッシュ値を合わせて記載するために絶対に同じパッケージを導入できます。
nixの定義はOS全体としても読み込むことができるが個別に実行することもできます。
nixを個別の環境に書いておけば特定の開発環境だけでバージョン依存関係のない環境が作成できるので開発環境としては最も適しているOSになっているんじゃないかなと期待しています。
カラースキーマ
nvimで使用しているthemeは自分でカスタマイズして作成しているので移行していきたい。...
終わりに
2024年のまとめと、現状 今後取り組んでいきたいことについて書いていきました。
自分のGitページ
実際に少しずつ動かしているので興味がある方はこちらに置いておきます。
コミュニティリンク集
vim-jp
vimの日本語コミュニティです。slackが盛り上がっています。
Nix日本語コミュニティ
非公式の日本語コミュニティです。Discordサーバーがあります。
vscode meet up.
年複数回イベントを実施しています。Discordサーバーがあります。
Discussion