Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Terminal IDE の世界
Search
fujitani sora
March 22, 2025
1
230
Terminal IDE の世界
fujitani sora
March 22, 2025
Tweet
Share
More Decks by fujitani sora
See All by fujitani sora
TypeScript * xx 一年目の振り返り
fujitanisroa0414
0
170
RubyでNeoVim Pluginを作る技術
fujitanisroa0414
0
54
toridori DevRel 立ち上げ約半年の成果と今年の目標
fujitanisroa0414
0
220
NestJS GraphQL開発を支える 自作CodeGenerator
fujitanisroa0414
0
31
なぜtoridori開発部はDevRelに取り組むのか
fujitanisroa0414
1
87
AWS SDK for PHPによる AmazonECS構成管理
fujitanisroa0414
2
380
ARR成長の為に開発者個人で出来る事
fujitanisroa0414
0
200
育成ゲームとしてのvim(桃太郎)
fujitanisroa0414
0
52
書籍紹介 「採算に乗る事業」の仕組みづくり
fujitanisroa0414
0
74
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Visualization
eitanlees
146
16k
Done Done
chrislema
184
16k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
33
5.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Unsuck your backbone
ammeep
671
58k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Side Projects
sachag
455
42k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Transcript
None
- fujitani sora - @_fs0414 - 2001 (23 ) -
初PHPerKaigi !
統合開発環境 IDE とは,プログラミングに必要なツールを一つの操作環境ですべて実行できるようにしたものである。ソース・ファ イルの編集や,コンパイラの起動,デバッグ作業などを実行できる。 [https://xtech.nikkei.com/it/members/NBY/techsquare/20021008/1/] (https://xtech.nikkei.com/it/members/NBY/techsquare/20021008/1/) IDE
VSCode, IntelliJ IDEA, Eclipse などのIDE 製品が多くのシェアを占める https://pypl.github.io/IDE.html IDE に求められる機能
https://www.diva-portal.org/smash/get/diva2:1177860/FULLTEXT01.PDF ソフトウェア開発者のIDE (統合開発環境)に対する好みと優先事項を調査した研究 The result of this study showed that
reliability, ease of use and efficiency were the most highly 参加者によると、IDE の平均的に最も高く評価された品質は「信頼性」 (5 段階中4.45 )で、次いで「効率性」と「使いやす さ」でした A Survey on Developers’ Preferences in Integrated Development Environments IDE に求められる機能
近年のシェアはベンダー提供のIDE 製品が多くを占める デフォルトから開発に必要な機能を提供 Git, Docker, Cloud との統合 Config やMarketplace による拡張性
AI Agent によるコードの提案 異なるAI Model やキーバインドなど、固有の機能を持つIDE が増えている 近年のIDE に求められる機能
Terminal (Vim )でどのようにIDE に相当する機能を組み込むのかの一例とメリットを紹介しま す 近い 6 Tools That Transformed
My Terminal Into an IDE How to Make Your Terminal an IDE TerminalIDE
なぜTerminal で完結させるのか Terminal Emulator LSP, DAP TextUserInterface 目次
FuzzyFinder プラグインにも、Telescope, Fzf など複数存在 それぞれUI や機能が異なる 使いやすいものを選択し、簡単に切り替えることができる 選択肢の多さと、体験の自由さ なぜTerminal で完結させるのか
必要なものは大体誰かが作っている。 必要であれば自分で作れるという心理的安全 性。 日頃の3step, 2step を1step にする為のツールが 簡単に作成、組み込むことができる 必要なものは実装可能 なぜTerminal
で完結させるのか
任意の言語でNeoVimn のプラグインを作成 できる機能 実装に当たり、慣れた言語で開発できるこ とは大きい PHP は現状サポートされていない 資料に乗せるようにPHP で作ろうとしたが、 敗北
RemotePlugin なぜTerminal で完結させるのか
iTerm2 Alacritty Kity WezTerm Warp OS に命令を送るためのソフトウェア CLI で操作できる Terminal
Emulator
設定の全てをLua 言語で記述可能である 細かな設定が可能 WezTerm Workspace による端末の多重化(Tmux 不要) 端末多重化 ウィンドウを増やすことなく、複数のターミナルセッションを管理する仕組み 筆者はWezTerm
を使用している WezTerm
文字情報の入力, 編集, 保存等の機能を持つソフトウェア Vim, Emacs, SublimeText … 本資料ではNeoVim をベースに話します テキストエディタ
デフォルトではLanguageServer との連携などの機能は持っていない この状態が、SSH 先で仕方なく使われるあれ テキストエディタ
補完や診断など、エディタからの支援機能を提供する機能 PHP でいうと、Intelephense, PHPStan, Psalm など エディタからのStdin, Stdout で通信を行う 今回は「補完が効く」事を目標に話を進めます
LanguageServer
LanguageServer Editor LanguageServer Editor LanguageServer に対して補完候補を要求(textDocument/completion) 補完候補を返す エディタからの入力を解析し、LanguageServer 補完候補を計算。 結果をエディタに返却して表示すことで開発者は補完機能を利用できる
LanguageServer
IDE であれば、Extension からインストールするだけ LanguageServer を使う
lspconfig プラグインを使用してコード管理するコード lspconfig.intelephense.setup({ ... }) LanguageServer を使う
結果として、テキストエディタでの補完が効く LanguageServer を使う
その他、ファイル操作やデバッグ機能を提供するDebugAdapter なども存在する。 イメージは最後に動かしてみるのでその時に その他
文字データで構成されるユーザーインターフェース Terminal 上で線や色を使い、GUI のような操作が可能 TextUserInterface
fzf-lua https://github.com/ibhagwan/fzf-lua TUI を用いた検索
TUI と外部ツールの連携 Lazygit
この辺でライブコーディング