Skip to content

Latest commit

 

History

History
176 lines (114 loc) · 6.1 KB

README.md

File metadata and controls

176 lines (114 loc) · 6.1 KB

dotfiles

個人用の dotfiles のレポジトリ.

依存コマンドのインストール・シンボリックリンクの設定

./install.sh

する.

日本語入力

mozcで入力を切り替えた際に始めから日本語入力になっていて欲しい(デフォルトでは直接入力).このオプションは入ったが,Ubuntu22.04で入るmozcではまだ利用できない.そのためこちらに従って上書き更新する.

https://zenn.dev/ikuya/articles/aa69fd1009b773

その後~/.config/mozc/ibus_config.textprotoを以下のように更新する.

engines {
  name : "mozc-jp"
  longname : "Mozc"
  layout : "default"
  layout_variant : "" # 一応追加
  layout_option : "" # 一応追加
  symbol : "あ" # 一応追加
  composition_mode: HIRAGANA # これが一番重要
}
active_on_launch: False

その後ibus write-cacheしてから再起動すると始めから日本語入力ができるようになる.

gnome-terminal

gnome-terminal上での入力だけ遅れる現象が起きる場合は https://askubuntu.com/questions/1509058/input-delay-on-terminal-ubuntu-22-04-4 に従ってmutterを更新する.

tmux

tmuxのキーバインドは以下の通り.

  • C-z cホームディレクトリで新しいwindowをつくる
  • C-z C-c現在のディレクトリで新しいwindowをつくる
  • C-z kで現在のwindowを消去
  • C-z n(p)でnext(right), previous(left)のwindowへ移動
  • C-z {0-9}で番号のwindowに移動
  • C-z |現在のディレクトリで縦にpaneを作る
  • C-z -現在のディレクトリで横にpaneを作る
  • C-z o, C-z C-oで隣のpaneに移る
  • C-z Mでsessionを名前付きで保存
  • C-z Nでsessionを名前付きで復帰(補完はできなさそう)

コピーアンドペーストは以下の手順.

  1. C-z [で画面上をカーソルで移動するモードに入る.
  2. C-z @で現在のカーソル位置からカーソルを動かしたところまでを選択するモードに入る.
  3. C-z {p, n, f, b}(Emacsと同じ)で範囲を選択.
  4. Alt-wでコピーできる.
  5. C-z C-yでペースト.

これをシステムのクリップボードに移すためにpbcopyコマンドを作った.マウスで範囲を選択した場合もpbcopyコマンドが必要.

languages

Julia

~/.local/opt/julia-x.x.xのディレクトリをインストールし,~/.local/bin/juliaへのsymlinkを張る.

Rust

~/.local/bin/にツールチェーンをインストール.

ROS2

colconに付属するargcompleteはバージョンが古いためfishに対応していない.

pip3 install --user argcomplete==2.0.0

すれば,aptで入ったargcompleteとconflictせずに済む.

fishについてはこちらの記事を参照

sudo apt-get install fzf fd-find jq
ln -s $(which fdfind) ~/.local/bin/fd

Emacs

gccemacsを使う

kelleyk:ppaですでにemacs-nativecompが提供されている.Ubuntu22では

sudo snap install emacs --classic

でnativecompが手に入るようになったので,こちらの方がすぐにDLできて良い.

plists

lspを高速にするにはplistsを使うようにコンパイルすべきであるらしい.eln-cacheを削除してから

export LSP_USE_PLISTS=true
OR
set -x export LSP_USE_PLISTS true

した上で再度コンパイルするとバイトコードに埋め込まれるようだ(?).

elpaの扱い

elpaのパッケージは別のレポジトリで管理する.

doom-modelineのアイコン

M-x all-the-icons-install-fonts, nerd-icons-install-fontsをする必要がある.

LSP

キーバインドは以下の通り

  • M+.で定義へのジャンプ,M+,で戻る

ccls

aptで入るcclsは古いので https://github.com/MaskRay/ccls/wiki/Build に従って最新のものを入れる. プロジェクトのrootに.cclsを置き,そこにcompile_commands.jsonへのシンボリックリンクを貼る(build/など).

  • ROSのようにrootの配下にC++のプロジェクト(vcsで管理されている)が複数配置されている場合は,それぞれのプロジェクトでrootのcompile_commands.jsonへのリンクを貼らないといけない(TODO: 良い対処法)
  • .hppのインデクシングが不十分な気がするので,compdbこの機能を使う必要がありそう
pip3 install --user compdb
compdb -p build/ list > compile_commands.json

clang

clang/clang++/clang-tidy/clangdなどは全てllvmのバージョンが同じになっていないと不整合が生じる.そのためシステムにあるllvm-xは一旦uninstallして(するとclang-x/clang++-xなどもuninstallされる),その後こちらに従い最新stableのllvm-toolchainを入れるのが良い.

sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
sudo apt-get install llvm-18 clang-tidy-<stable> clangd-<stable>

python

pip3 install --user python-language-server rope autopep8 black pyright

Pipfileなどで管理されたプロジェクトで補完を行うにはpyvenvパッケージを利用する.

M-x pyvenv-activateでPipfileがあるフォルダーを選択しlsp-workspace-restartすると仮想環境にインストールされたパッケージが認識される. --> もしかするとpipenvに入った状態でemacsを立ち上げる必要もあるかも.

aptで入るnodeのversionがpyrightに対して古い場合があるので https://qiita.com/nouernet/items/d6ad4d5f4f08857644de に従ってnodeのバージョン管理を行うと良い.

rust

rustup component add rls rust-analysis rust-src

参考