dotfiles自慢大会を開催しました
こんにちは!開発部の冨永です。
SODAでは毎週月曜日にエンジニアの勉強会を行っており、今回先日行った dotfiles自慢大会の開催レポートをお届けします。
SODAのエンジニア勉強会についての紹介はこちら
会社やエンジニア組織に関する情報は以下リンクはこちら
タイムテーブル
var unixToInternal int64 = (1969*365 + 1969/4 - 1969/100 + 1969/400) * 24 * 60 * 60 // https://pkg.go.dev/time#Unix
Name | time.Duration |
---|---|
1. 進め方の説明 | 1 * time.Minute |
2. アンケート結果 | 3 * time.Minute |
3. LT by @rinchsan | 5 * time.Minute 〜 time.Unix(math.MaxInt64-1-unixToInternal, 999_999_999) |
4. LT by @sh0e1 | 5 * time.Minute 〜 time.Unix(math.MaxInt64-1-unixToInternal, 999_999_999) |
5. LT by @koyashiro | 5 * time.Minute 〜 time.Unix(math.MaxInt64-1-unixToInternal, 999_999_999) |
6. パネルディスカッション | 20 * time.Minute |
7. 終わりの会 | 1 * time.Minute |
アンケート結果
勉強会の前に、エンジニア全体に開発環境周りのアンケートをした結果の発表がありました
shell / dotfiles / terminal
zsh / bash / fish | dotfiles管理 Y/N | iTerm / Warp / Alacritty | カスタマイズ Y/N |
---|---|---|---|
15 / 1 / 3 | 9 / 7 | 13 / 3 / 3 | 14 / 4 |
shell は zsh、terminal は iTerm が人気という結果になり、半数以上のメンバーが dotfies管理をしていました。
keyboards
Qwerty / Dvorak / Colemak | Macbook本体 / HHKB / Realforce | Moonlander / PLANCK EZ |
---|---|---|
16 / 1 / 0 | 5 / 8 / 1 | 2 / 1 |
自作 Corne Cherry / Corne Chocolate / cocot46plus / Atreus | qmk_firmware管理 Y/N/なにそれ |
---|---|
3 / 1 / 1 / 1 | 5 / 2 / 12 |
人気のキーボードは以下のような結果になりました。
- HHKB
- Macbook本体
- Corne Cherry
自作キーボードを使っている人も多く、キーボード配列に Dvorak を使っている猛者が1名いました!
ここからは各LTの内容をご紹介させていただきます!
@rinchsan
LT by
新しいPCを起動したら
bash -c "$(curl https://raw.githubusercontent.com/rinchsan/dotfiles/main/etc/scripts/install.sh)"
- とりあえず最初から入ってる
bash
とcurl
で全部セットアップ! -
[install.sh](http://install.sh)
を用意しておいて基本的にはそれを実行するだけでいつもの環境に!
etc/scripts/[install.sh](http://install.sh)
- Homebrew入れる!git入れる!dotfilesをcloneする!
- make deploy!make init!
#!/bin/bash
set -eu
cd $HOME
if ! type brew >/dev/null 2>&1; then
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi
if ! type git >/dev/null 2>&1; then
brew install git
fi
if [ ! -d dotfiles ]; then
git clone https://github.com/rinchsan/dotfiles.git
fi
cd dotfiles
make deploy
make init
make deploy
- dotfilesをホームディレクトリにシンボリックリンクで展開!
- 作ったものを反映する意味でのデプロイ!
#!/bin/bash
set -eu
DOTFILES=$(dirname "$(cd "$(dirname $0)" && pwd)")
cd ${DOTFILES}
for FILE in .??*
do
[ "${FILE}" = ".git" ] && continue
SRC=$(cd "$(dirname ${FILE})" && pwd)/$(basename ${FILE})
ln -snfv ${SRC} ${HOME}/${FILE}
done
make init
- 一番最初に一度だけ設定するもの!イニシャライズ!
- いろいろやってるから分割して説明!
#!/bin/bash
set -eu
brew bundle install --file=${HOME}/dotfiles/.Brewfile
gh release download --repo marcosnils/bin --pattern '*Darwin_x86*'
mv bin*Darwin_x86* bin
chmod +x bin
mv bin /usr/local/bin/bin
bin ensure
echo 'Changing default shell to fish'
echo "$(which fish)" | sudo tee -a /etc/shells
chsh -s "$(which fish)"
echo 'Changing MacOS settings'
defaults write -g InitialKeyRepeat -int 12 # normal minimum is 15 (225 ms)
defaults write -g KeyRepeat -int 1 # normal minimum is 2 (30 ms)
defaults write -g AppleShowScrollBars -string "Always"
defaults write -g NSAutomaticSpellingCorrectionEnabled -bool false
defaults write -g AppleShowAllExtensions -bool true
defaults write com.apple.PowerChime ChimeOnNoHardware -bool true
defaults write com.apple.finder ShowPathbar -bool true
defaults write com.apple.finder ShowStatusBar -bool true
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool true
defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool true
defaults write com.apple.TextEdit RichText -int 0
defaults write com.apple.SoftwareUpdate ConfigDataInstall -int 1
defaults write com.apple.finder AppleShowAllFiles -bool YES
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
defaults write com.apple.dock autohide -bool true
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 27 "<dict><key>enabled</key><false/></dict>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 28 "<dict><key>enabled</key><false/></dic>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 29 "<dict><key>enabled</key><false/></dic>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 30 "<dict><key>enabled</key><false/></dic>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 31 "<dict><key>enabled</key><false/></dic>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 181 "<dict><key>enabled</key><false/></dic>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 182 "<dict><key>enabled</key><false/></dic>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 184 "<dict><key>enabled</key><false/></dic>"
networksetup -SetDNSServers Wi-Fi 8.8.8.8 8.8.4.4
networksetup -SetV6Off Wi-Fi
echo 'Rebooting to reflect settings'
sudo shutdownn -r now
https://github.com/Homebrew/brew
-
.Brewfile
でHomebrewでインストールするパッケージを管理! -
brew bundle install
で全部いっぺんに入れる!
brew bundle install --file=${HOME}/dotfiles/.Brewfile
https://github.com/marcosnils/bin
- Homebrewで入れられないパッケージはbinで!
-
gh
https://github.com/cli/cli でGitHub Releaseをダウンロードできるのです! -
bin ensure
でbrew bundle install
的なことを実行!
gh release download --repo marcosnils/bin --pattern '*Darwin_x86*'
mv bin*Darwin_x86* bin
chmod +x bin
mv bin /usr/local/bin/bin
bin ensure
{
"default_path": "/usr/local/bin",
"bins": {
"/usr/local/bin/hgrep": {
"path": "/usr/local/bin/hgrep",
"remote_name": "hgrep",
"version": "v0.2.2",
"hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"url": "github.com/rhysd/hgrep",
"provider": "github",
"package_path": "hgrep-v0.2.2-x86_64-apple-darwin/hgrep"
}
}
}
https://github.com/fish-shell/fish-shell
- デフォルトのシェルをfishへ!
- fish stands for friendly interactive shell !
- 特に色々頑張って設定しなくてもデフォでいい感じに使いやすいシェルらしい!
echo 'Changing default shell to fish'
echo "$(which fish)" | sudo tee -a /etc/shells
chsh -s "$(which fish)"
MacOSの設定をシェルから設定
- defaultsコマンドを使うとMacの設定をシェルから変更できるのです!
- キーリピート速度とかは特にシステム設定からは不可能なレベルに速くすることが出来ます!
- 充電ケーブルさしたときの「フォン!」が嫌いなのでそれもオフにしています!
- 他にもいろいろ!
- 作り方:
defaults read > temp1
- システム設定から色々変更する
defaults read > temp2
diff temp1 temp2
- 差分をいい感じに
defaults write
にしていく
echo 'Changing MacOS settings'
defaults write -g InitialKeyRepeat -int 12 # normal minimum is 15 (225 ms)
defaults write -g KeyRepeat -int 1 # normal minimum is 2 (30 ms)
defaults write -g AppleShowScrollBars -string "Always"
defaults write -g NSAutomaticSpellingCorrectionEnabled -bool false
defaults write -g AppleShowAllExtensions -bool true
defaults write com.apple.PowerChime ChimeOnNoHardware -bool true
defaults write com.apple.finder ShowPathbar -bool true
defaults write com.apple.finder ShowStatusBar -bool true
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool true
defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool true
defaults write com.apple.TextEdit RichText -int 0
defaults write com.apple.SoftwareUpdate ConfigDataInstall -int 1
defaults write com.apple.finder AppleShowAllFiles -bool YES
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
defaults write com.apple.dock autohide -bool true
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 27 "<dict><key>enabled</key><false/></dict>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 28 "<dict><key>enabled</key><false/></dic>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 29 "<dict><key>enabled</key><false/></dic>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 30 "<dict><key>enabled</key><false/></dic>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 31 "<dict><key>enabled</key><false/></dic>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 181 "<dict><key>enabled</key><false/></dic>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 182 "<dict><key>enabled</key><false/></dic>"
defaults write com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 184 "<dict><key>enabled</key><false/></dic>"
DNS設定もして再起動
- なんかネット早くなるとか何とかをウワサに聞いたからDNSサーバもなんかネット上の記事に言われるがまま設定!なんかGoogleの何からしい!
- 再起動しないと反映されないものある気がするから、ここで一応再起動!再起動はすべてを解決する!
-
1.1.1.1
もいいらしい
networksetup -SetDNSServers Wi-Fi 8.8.8.8 8.8.4.4
networksetup -SetV6Off Wi-Fi
echo 'Rebooting to reflect settings'
sudo shutdownn -r now
おまけ
nano
- vimむずかしい!
- nanoはなんか知らんけどEmacsキーバインドがデフォで動く!
- ほぼ使うエディタはGoLand!
-
.nanorc
は気持ちばかりの設定のみ!
include "/usr/local/share/nano/*.nanorc"
set autoindent
set linenumbers
$HOME/.config/git/config
と $HOME/.config/git/ignore
- gitconfigとgitignoreはデフォルトのパスが↑なので、ここに置いておけばパス指定せずとも読み込んでくれる!
- ワイのオリジナルコマンド
git sync
便利やで!
[user]
email = mcdonalds.only@gmail.com
name = Masaya Hayashi
username = rinchsan
[color]
ui = true
[alias]
gr = log --graph --date=iso --decorate=short --pretty=format:'%Cgreen%h %Creset%cd %C(yellow)%cn %Cred%d %Creset%s'
diw = diff --color-words --word-diff-regex='\\w+|[^[:space:]]'
push-f = push --force-with-lease --force-if-includes
sync = !git switch $(git remote show origin | grep 'HEAD branch' | awk '{print $NF}') && git pull origin $(git remote show origin | grep 'HEAD branch' | awk '{print $NF}') && git fetch --prune && git branch -d $(git branch --merged | grep -v '*')
tags = !git tag --sort=-creatordate | head -n 10
[core]
editor = nano
hooksPath = /dev/null
[push]
default = nothing
[merge]
ff = false
[pull]
ff = only
[init]
templatedir = ~/.git-template
defaultBranch = main
[ghq]
root = ~/go/src
自作キーボード
- cocot46plus ええで!
- 40%キーボード!
- トラックボールでポインタ操作!
- ロータリーエンコーダでスクロール!
cocot46plus 自作キーボードキット | DIY Mechanical Keyboard Kit
- Corne Cherry もええで!
- 40%の分割キーボード!
- これはAmazonで実装済みが買えるから、はんだ付けハードル高い人もいける!(在庫はすぐに無くなりがち)
ビット・トレード・ワン CORNE CHERRY 半田付けのいらない42キー スプリット キーボードキットBitTradeOne ADSKBCC
Dvorak配列
- 変態と呼ばれて気持ちいい人にオススメ!
https://github.com/rinchsan/qmk_firmware
- 自作キーボードのファームウェアはC言語で書きます!()
- なんかマイコンみたいなのが自作キーボードの中に入ってて、そいつにファームウェアを書き込む
- GoもVer1.3あたりでセルフホストされるまではCでコンパイルされてたので、GoもCも同じようなもんですね!
- ファームウェアのこだわりはレイヤはデフォともう1個だけに留めること!
#include QMK_KEYBOARD_H
#include <stdio.h>
#include "quantum.h"
enum layers {
_BASE,
_LOWER,
};
enum custom_keycodes {
LOWER = SAFE_RANGE,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
//|-------------------------------------------------------| |-------------------------------------------------------|
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
//|-------------------------------------------------------| |-------------------------------------------------------|
KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
//|-------------------------------------------------------| |-------------------------------------------------------|
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSLS,
//|-------------------------------------------------------| |-------------------------------------------------------|
XXXXXXX, KC_LOPT, KC_LCMD, KC_SPC, KC_MS_BTN1, KC_MS_BTN2, KC_ENT, LOWER, KC_ESC, XXXXXXX,
KC_WH_D, KC_MS_BTN3, KC_WH_U, XXXXXXX, XXXXXXX, XXXXXXX
//`--------------' `--------------'
),
[_LOWER] = LAYOUT(
//|-------------------------------------------------------| |-------------------------------------------------------|
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL,
//|-------------------------------------------------------| |-------------------------------------------------------|
KC_BRIU, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC,
//|-------------------------------------------------------| |-------------------------------------------------------|
KC_BRID, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_RBRC,
//|-------------------------------------------------------| |-------------------------------------------------------|
XXXXXXX, KC_MUTE, XXXXXXX, KC_SPC, KC_MS_BTN1, KC_MS_BTN2, KC_VOLD, _______, KC_VOLU, XXXXXXX,
KC_WH_R, KC_MS_BTN3, KC_WH_L, XXXXXXX, XXXXXXX, XXXXXXX
//`--------------' `--------------'
),
};
登壇後のコメント
ちなみにですが、この大会をきっかけにNeovimデビューして、いま練習中です
@sh0e1
LT by
- 普段の開発
- nvim + tmux + zsh + tig
- 基本全部vimキーバインド
- zsh
- tig
- tmux
- chrome(Vimnium)
Vim
- Plugin管理
- lspクライアントはcoc.nvim
- lsp-server
- Go: https://pkg.go.dev/golang.org/x/tools/gopls
- あとは必要に応じて
- Go Plugin
- https://github.com/ray-x/go.nvim
- そんなに使ってない
- カラースキーマはGitHubのテーマ
- https://github.com/projekt0n/github-nvim-theme (完全にGitHubの画面に合わせるために少しカスタマイズしている)
- snippetが便利
-
ttm
tests := map[string]struct { given string want string }{ "<`2`>": {"<`3`>", "<`4`>",}, } for name, tt := range tests { tt := tt t.Run(name, func(t *testing.T){ t.Parallel() got := Function(tt.given) if tt.want != got { t.Errorf("given(%s): want %s, got %s", tt.given, tt.want, got) } }) }
-
cmpdiff
if diff := cmp.Diff(tt.want, got); diff != "" { t.Errorf("funcName mismatch (-want +got):\n%s", diff) }
zsh
- Plugin管理
- prompt
- historyはfzf
- font
tmux
- Plugin管理
- 比較的シンプル構成
- GCPのプロジェクト表示するやつを自作
- あとkubernetes contextを表示するやつとか使ってる
- SODAではほぼ意味ない
その他
-
.gitmessageファイルをおいておくと、git commitしたときに表示される
[commit] template = ~/.config/git/.gitmessage
:emoji: subject: message issue=#no # ==== Emojis ==== # 🐛 :bug: Bug: バグ修正 # 🔧 :wrench: Fix: 機能修正 # 👍 :+1: Update: 機能改善 # ✨ :sparkles: Add: 機能追加 # 🍀 :four_leaf_clover: Refactor: リファクタリング # 🗑 :wastebasket: Remove: 削除 # 💚 :green_heart: Test: テスト # 🚀 :rocket: Performance: パフォーマンス改善 # 🆙 :arrow_up: Update: 依存パッケージなどのアップデート # 🔒 :lock: Security: セキュリティ改善 # 📖 :book: Doc: ドキュメント # 🤖 :robot: CI: CIツール # 🎉 :tada: Release: リリース # ==== The Seven Rules ==== # 1. Separate subject from body with a blank line # 2. Limit the subject line to 50 characters # 3. Capitalize the subject line # 4. Do not end the subject line with a period # 5. Use the imperative mood in the subject line # 6. Wrap the body at 72 characters # 7. Use the body to explain what and why vs. how # # How to Write a Git Commit Message http://chris.beams.io/posts/git-commit/
Keyboard
- 今はMoonlander
- https://www.zsa.io/moonlander/
- Key map
- https://configure.zsa.io/moonlander/layouts/QjeQg/zGAYJ/0
- Alfredを一発で起動できるようにしてたりとかする
- 前はlily58
- 完全自作
- https://github.com/sh0e1/keyboard (ほぼ何もコミットしてない…)
- 基盤から設計したやつ
- 動作は確認済、なんかださかったので使ってない
- キーマップ
@koyashiro
LT by
環境
- Terminal: https://github.com/alacritty/alacritty
- Shell: https://github.com/zsh-users/zsh
- Terminal multiplexer: https://github.com/tmux/tmux
- Editor: https://github.com/neovim/neovim
- Language server: https://github.com/neoclide/coc.nvim
- Keyboard: HHKB Professional HYBRID Type-S
- Font: https://github.com/yuru7/HackGen
- OS:
- プライベートでは Windows 11 や Arch Linux
- スニダンでは macOS Ventura
dotfiles で管理しているもの
-
主に Unix 系 OS で使うことを想定した設定ファイルを管理しています。
-
.bashrc
,.zshrc
,.vimrc
,.config/nvim/init.vim
等
-
-
基本はホームディレクトリと1対1で対応しています。
-
共通の設定ファイルは
shared/
に置いています。dotfiles/shared at 6a78cd7a362c85b803323cf129c6a6a168a09c29 · koyashiro/dotfiles
-
プラットフォーム固有の設定ファイルは別ディレクトリに置いています。
-
Windows (Cygwin/MSYS2)固有の設定ファイルは
windows/
に置いています。dotfiles/windows at 6a78cd7a362c85b803323cf129c6a6a168a09c29 · koyashiro/dotfiles
-
WSL 固有の設定ファイルは
windows/wsl/
に置いています。dotfiles/windows/wsl at 6a78cd7a362c85b803323cf129c6a6a168a09c29 · koyashiro/dotfiles
-
macOS 固有の設定ファイルは
macos/
に置いています。dotfiles/macos at 6a78cd7a362c85b803323cf129c6a6a168a09c29 · koyashiro/dotfiles
-
-
ホームディレクトリ(
$HOME
)を綺麗にするため、設定ファイルは XDG Base Directory を意識して置くようにしています。-
XDG Base Directory について
-
sh, bash, zsh など、ブートストラップの関係で設定ファイルのディレクトリを変更できないものについては
$HOME
に置いています。
-
インストール
install.sh
dotfiles/install.sh at 6a78cd7a362c85b803323cf129c6a6a168a09c29 · koyashiro/dotfiles
-
ln -fsn
でシンボリックリンクを張っていくシェルスクリプトです。 - macOS 、Windows(wsl) で分岐させてます。
-
--dry-run
(DRY_RUN=1 ./install.sh
)もあります。
基本的には git clone
して install.sh
を叩くだけです。
git clone git@github.com:koyashiro/dotfiles.git
cd dotfiles
./install.sh
curl
を使ったワンライナーも用意しています。
curl https://dotfiles.koyashiro.sh | sh
Shell
-
メインのシェルは https://github.com/zsh-users/zsh を利用しています。
-
環境変数やエイリアス、関数は他のシェル (https://github.com/ash-shell/ash, https://github.com/danishprakash/dash, bash) でも利用できるように
shared/.config/sh/
で集中管理しています(たまに他の Shell も使うため)。dotfiles/shared/.config/sh at 5bc104efce64de75fdd128d86b9a01cc4055ef26 · koyashiro/dotfiles
-
shared/.config/sh/alias.sh
にエイリアスを大量に仕込んでいます。dotfiles/alias.sh at 5bc104efce64de75fdd128d86b9a01cc4055ef26 · koyashiro/dotfiles
-
.bashrc
や.zshrc
から共通で読み込みます。
-
-
shared/.config/sh/env.sh
に環境変数の設定を集約しています。dotfiles/env.sh at 5bc104efce64de75fdd128d86b9a01cc4055ef26 · koyashiro/dotfiles
-
.bash_profile
や.zshenv
から共通で読み込みます。
-
-
Bash 拡張や zsh 拡張を使わず POSIX 互換であることを意識して書いています。
-
-
zsh 固有の設定やプラグインは
shared/.config/zsh
に置いています。dotfiles/shared/.config/zsh at 5bc104efce64de75fdd128d86b9a01cc4055ef26 · koyashiro/dotfiles
-
zsh のプラグイン管理は https://github.com/zdharma-continuum/zinit を使っています。
dotfiles/zinit.zsh at 5bc104efce64de75fdd128d86b9a01cc4055ef26 · koyashiro/dotfiles
- 過去にリポジトリが消えた事件があったのでぼちぼち移行を検討しています。
-
https://github.com/romkatv/powerlevel10k でプロンプトをいい感じにしています。
dotfiles/.p10k.zsh at 5bc104efce64de75fdd128d86b9a01cc4055ef26 · koyashiro/dotfiles
tmux
-
shared/.config/tmux/tmux.conf
に設定ファイルを置いています。dotfiles/tmux.conf at 5bc104efce64de75fdd128d86b9a01cc4055ef26 · koyashiro/dotfiles
-
prefix は
C-s
Emacs 使いに怒られそう
-
プラグイン等は使わずゴリゴリ設定ファイルを書いています。
Vim / Neovim
-
Vim / Neovim 共通の設定を
shared/.config/.vimrc
に書いています。dotfiles/.vimrc at 5bc104efce64de75fdd128d86b9a01cc4055ef26 · koyashiro/dotfiles
-
Neovim の
shared/.config/nvim/init.nvim
は.vimrc
をsource
するだけ。dotfiles/init.vim at 5bc104efce64de75fdd128d86b9a01cc4055ef26 · koyashiro/dotfiles
-
共通で動くように設定を書いているつもりでしたが、あまりメンテできていないので Vim での挙動が怪しいです。
-
-
プラグイン管理には https://github.com/junegunn/vim-plug を使っています。
dotfiles/.vimrc at 5bc104efce64de75fdd128d86b9a01cc4055ef26 · koyashiro/dotfiles
-
Language server には https://github.com/neoclide/coc.nvim を使っています。
dotfiles/.vimrc at 5bc104efce64de75fdd128d86b9a01cc4055ef26 · koyashiro/dotfiles
dotfiles/coc-settings.json at 5bc104efce64de75fdd128d86b9a01cc4055ef26 · koyashiro/dotfiles
-
colorscheme は https://github.com/folke/tokyonight.nvim を使っています。
CLI コマンド
-
ファジーファインダーに https://github.com/junegunn/fzf を愛用しています。
- Vim / Neovim でもつかいます
-
Rust 製の代替コマンドをよく使っています。
-
ls
,tree
→exa
-
grep
→ripgrep
-
find
→fd
-
cat
,less
→bat
-
diff
→delta
-
ps
→procs
-
CI
- GitHub Actions で CI 回してます。
- 回しているワークフロー
最後に
いかがでしたでしょうか。
皆さん開発環境にこだわりを持ってカスタマイズをしている人が多く、LTを聞いていてとても楽しかったです!
またSODAでは一緒に働いていたけるエンジニアを募集しています。少しでも興味持ってくれた方はぜひ話しましょう!
株式会社SODAの開発組織がお届けするZenn Publicationです。 是非Entrance Bookもご覧ください! → recruit.soda-inc.jp/engineer
Discussion