ターミナルはエンジニアの肝
もしあなたがデフォルトのターミナルを使ってるvscode、git操作をvscodeのGUIでやってるマウスコチコチ人間ならば、この記事を読めば自分の見逃してるものに気づけるでしょう。
そして、もしあなたが見惚れるようなターミナル、neovim環境、素晴らしいキーボード、コーヒー、最高のコーティング環境を作るのが大好きなならば、あなたは私たちの仲間です。
この記事のフィードバックをお待ちしてます 🙏
ん?なぜ?(本題)
私はいつもWarpを使っているのですが最近色々困ってることがあって。
-
Warpは出力&入力で構成されるブロック式なんですが、ターミナル内のものをコピーしたいとなった時に全部がコピーされてしまう
-
日本語入力に対応してなくて、raycastでコミットのメッセージを書いて、コピペするみたいなのが面倒い
とうい訳で、iterm2に環境を移行してみよっか、って話です。
1週間経って不便を感じたらWarpに戻ります。
この記事は私の1週間の記録です !
私の環境
- macbook air M3
- エディター : neovim
- ターミナル -> iterm2
(ghosstyも考えたけどショートカットがtmuxと競合したから諦めた)
テーマはrose-pine
ええな〜
タイトルバーを消せて、下にタブを表示できるのがいい唯一無二の設定。
さすがMac用に作られてるだけある。
素晴らしい
1日目
この日は開発そっちのけで授業中も設定祭り。
本当に嫌になりそうになった。。。。
tmuxのキーバインドはGPTに助けてもらいながらなんとか上の写真のような環境が完成。
ターミナルのキーマッピングはまだ触れてないです。
気づいたけど基本tmuxで作業するし分割もあまりしないから割とターミナルのじゃ設定しないでも大丈夫かも。
明日から設定に気を散らさずにコードを書いていきたい。
プロンプトをいじるのにはp10kを使ってます。
左にパスが表示されてます 結構設定は面倒だった。
zshプラグインはこれらを使ってます。
こんな感じでコマンドにハイライトされます。
存在しないコマンドは下線が付かず赤色で表示されます。
履歴補完
そのうちドットファイルレポジトリで公開したいかも
yabai + skhd も色々共有したい。
これもしかして、普通の個人的な1週間の開発日記になるのでは?
設定沼は依存症では?とたまに思うけど快適な作業環境を構築する当然の過程なのか???????
2日目
ターミナルを終了してもセッションが続くtmuxの良さに感動。
私はWarpの時からタブごとに開くものを決めていて
- 1 : neovim
- 2 : 実行(bun)
- 3 : lazygit
- 4 : btop <- あんまり使わない
この作業の流れは今のところ遜色はないと感じています。
おーとここで問題発生
tmuxのリサイズキーのとneovimのウィンドウ移動のキー設定がかぶってneovimで分割ウィンドウの移動ができなくなってしまった
解決方法
tmux & neovim両方でこのプラグインを入れる
プラグイン 🔗
- [tmux]
set -g @plugin 'christoomey/vim-tmux-navigator'
# 設定
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
# tmux copy mode中でもvim-tmux-navigatorが使えるように
bind-key -T copy-mode-vi 'C-h' select-pane -L
bind-key -T copy-mode-vi 'C-j' select-pane -D
bind-key -T copy-mode-vi 'C-k' select-pane -U
bind-key -T copy-mode-vi 'C-l' select-pane -R
bind-key -T copy-mode-vi 'C-\' select-pane -l
- [neovim]
{
"christoomey/vim-tmux-navigator",
cmd = {
"TmuxNavigateLeft",
"TmuxNavigateDown",
"TmuxNavigateUp",
"TmuxNavigateRight",
"TmuxNavigatePrevious",
"TmuxNavigatorProcessList",
},
keys = {
{ "<c-h>", "<cmd><C-U>TmuxNavigateLeft<cr>" },
{ "<c-j>", "<cmd><C-U>TmuxNavigateDown<cr>" },
{ "<c-k>", "<cmd><C-U>TmuxNavigateUp<cr>" },
{ "<c-l>", "<cmd><C-U>TmuxNavigateRight<cr>" },
{ "<c-\\>", "<cmd><C-U>TmuxNavigatePrevious<cr>" },
},
}
これにて解決!めでたしめでたし
3 ~ 5日目
安定して使ってます。
neovimのテーマいじってるくらいです。
このセクションの文章実は3回目くらいかき直していて、というのも記事をiCloudで管理したんですけど同期失敗して書いたのが消されて割と凹んでます。
ちなみにnoteの記事も
これを期にgoogle driveへ移行しました。 本当に勘弁してほしいです。
は〜書き直しですか。。。
最近tauriでアプリ作ってるんですけどrustに苦戦してます。
rustってTSとは全然違うしかといってC++と近いかと言われれば?
細かいところまで指定するのでコードの量増えるんで、汚くしたら読みづらくなるんでそこらへん気をつけてます。
話戻りますが、tmuxはvim風に選択できるのが本当にいいでね。
warpにはない操作感。選択コピーするのにマウスを必要としない。
warpも一応出力・入力をコピーすることはできるんですけど、全部コピーされちゃうので自分で調節しないといけないのが面倒ではある。
rustのコンパイラは長いのでエラーの部分だけ選択できるのは本当にありがたい。
最近neovimとかtmuxなどのプラグイン入れて使う
ターミナルのオープンソースの開発ツールを使ってると一つ気づいて
エディターなんぞVscodeで良くねって人結構いて、まあvscも素晴らしいんですけど。
これらを使うのは、ターミナルで作業を完結できるのもそうなんですが、ただそれだけじゃなくて
本当にいいとこは、ガラクタから最高の作業環境を作ることなんですよ
その時に試行錯誤したり、物の仕組みを理解して自分の望むような形にするのにプログラマとしての成長的な物があると思います。
6日目(まとめ+締め)
今日も今日とで不満はないんですけど。
ターミナルを終了してもセッションが保持されるのがやはり素晴らしいです。
7日目も同じことを書くのが目に見えていますのでもうここで終わります <3
ここでwarpに戻るかもう一度考えると。。。
戻らないですね 移行大成功って感じです。
もしいつかwarpがtmuxのような操作感を追加してくれたらもう一度考えますけど。
現在のIterm & tmux & neovim環境が自分に1週間使って自分にしっくりきました。