個人用の dotfiles のレポジトリ.
./install.shする.
mozcで入力を切り替えた際に始めから日本語入力になっていて欲しい(デフォルトでは直接入力).このオプションは入ったが,Ubuntu22.04で入るmozcではまだ利用できない.そのためこちらに従って上書き更新する.
Dockerfileとしては代わりに
curl -O https://raw.githubusercontent.com/google/mozc/b0a604f110e01d11107ebbaad09e674cecee34f5/docker/ubuntu22.04/Dockerfile
- RUN apt-get install -y bazel
+ RUN apt-get install -y bazel-7.7.1
+ RUN ln -s /usr/bin/bazel-7.7.1 /usr/bin/bazelを用いること.
その後~/.config/mozc/ibus_config.textprotoのmozc-jpのフィールドを以下のように更新する.
engines {
name : "mozc-jp"
longname : "Mozc"
layout : "default"
layout_variant : ""
layout_option : ""
symbol : "あ"
composition_mode: HIRAGANA # これが一番重要
}
その後ibus write-cacheしてから再起動すると始めから日本語入力ができるようになる.
英語の次にJapaneseで"Japanese (Mozc)"を選択する.
"Ctrl-Space"でInput Sourceを切り替えるように変更する.
| View And Customize Shortcuts | Typing | Switch |
|
|
|
|
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勝手にsourceするのを防ぐには
auto_source_disableすれば良い.
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をする必要がある.
C-j: "scratch"でコマンドを実行(たまに忘れる)C-p,C-n: 上下移動C-f,C-b: カーソルを進める/戻すC-a,C-e: カーソルを行の先頭/末にC-h: backspaceC-m: 改行C-\: 範囲選択開始C-w: 選択範囲をカットC-y: ペーストC-S-v: システムのクリップボードからペーストC-s,C-r: 前方/後方検索
C-t: frameを移動C-x 0: 現在のframeを閉じるC-x 1: 現在のframeだけを開き他を閉じるC-x 2: 現在のframeを水平に分割C-x 3: 現在のframeを縦に分割C-x C-p,C-x C-n: frameを右/左に移動C-x k,C-x C-k: 選択したBufferを閉じるC-1,C-2: タブを移動
C-x u: undo-tree起動M-%: query-replace起動C-x g: magit起動
M-+-.: シンボル参照M-+-,: シンボル参照を一つ戻るC-M-i: 続きの補完候補を出す(GUI/CUI両方で可能)- 候補一覧の各アイテムにおいて
Ctrl-dすると詳細を読める(GUI/CUI両方で可能)
- 候補一覧の各アイテムにおいて
C-M-p: シンボルのドキュメントを出す
clang/clang++/clang-tidy/clangdなどは全てllvmのバージョンが同じになっていないと不整合が生じる.
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"sudo apt-get install clang-18 clang++-18 clang-tidy-18 clangd-18 clang-format-18 libomp-18-dev一つづつupdate-alternativeを適用する.
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 18
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 18
sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-18 18
sudo update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-18 18
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-18 18またコンパイルするために,Ubuntu22では
sudo apt-get install libstdc++-12-devコンパイラとしてclangを使わないとしてもLSPでclangdを利用するにはclangの設定が必要になる.そのため
sudo apt-get install libstdc++-12-dev libomp-18-devがないと標準ライブラリーやomp.hが見つからずLSPとして機能してくれない.
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
nをinstallしてそれ経由でnpmをinstallした方が良い.npmをupdateするには
sudo n stableで良い.ローカルのnodeプロジェクトでは
export PATH=$PATH:.local/.binを.envrcに記せば良い.
