個人用の 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上での入力だけ遅れる現象が起きる場合は https://askubuntu.com/questions/1509058/input-delay-on-terminal-ubuntu-22-04-4 に従ってmutterを更新する.
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を名前付きで復帰(補完はできなさそう)
コピーアンドペーストは以下の手順.
C-z [
で画面上をカーソルで移動するモードに入る.C-z @
で現在のカーソル位置からカーソルを動かしたところまでを選択するモードに入る.C-z {p, n, f, b}
(Emacsと同じ)で範囲を選択.Alt-w
でコピーできる.C-z C-y
でペースト.
これをシステムのクリップボードに移すためにpbcopy
コマンドを作った.マウスで範囲を選択した場合もpbcopy
コマンドが必要.
~/.local/opt/
にjulia-x.x.x
のディレクトリをインストールし,~/.local/bin/julia
へのsymlinkを張る.
~/.local/bin/
にツールチェーンをインストール.
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
kelleyk:ppa
ですでにemacs-nativecomp
が提供されている.Ubuntu22では
sudo snap install emacs --classic
でnativecompが手に入るようになったので,こちらの方がすぐにDLできて良い.
lspを高速にするにはplistsを使うようにコンパイルすべきであるらしい.eln-cache
を削除してから
export LSP_USE_PLISTS=true
OR
set -x export LSP_USE_PLISTS true
した上で再度コンパイルするとバイトコードに埋め込まれるようだ(?).
elpaのパッケージは別のレポジトリで管理する.
M-x all-the-icons-install-fonts, nerd-icons-install-fonts
をする必要がある.
キーバインドは以下の通り
M+.
で定義へのジャンプ,M+,
で戻る
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-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>
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
のバージョン管理を行うと良い.
rustup component add rls rust-analysis rust-src