七色七音

「いつも」と「今日」は別の日だから……

設定メモ

私は極力デフォルト設定で使いたいと考える悪いクセがあり、これには

  1. 再セットアップ時にどこをどう変えたか思い出せなくなる
  2. 変な設定して変な挙動し始めたら嫌
  3. 他人の環境でも違和感なく使いたい

のような理由がある。

が、3つめの理由は他人が設定を弄ってたら無意味。2つめは変な挙動し始めたら元に戻せばいい、そして1つめはメモしておけばいい、という事に気付いたので設定をメモ

ブログに投稿しているもの

Windows

%USERPROFILE%\binをPathに追加している。Windowsでもコマンドが色々使えるのは便利。

binの中身に関してはそのうちGitHubにでも上げたいと思っている。(が、半分ぐらいはexe=バイナリなのでどうしようかなぁ、と……)

自分が中身を思い出す用に、とりあえず入れているものをリストアップしておく。

cjpeg.exe, ffmpeg.exe, java, optipng.exe, sass.exe, composer.bat, java.bat, pget.exe, sass-auto.ps1, csi.bat, http.bat, jgrep.sh, php.bat, sha256.ps1, dig.bat, hugo.exe, jpegtran.exe, php7.0.bat, whois.exe, imageopti.ps1, jshell.bat, pngquant.exe, youtube-dl.exe

基本的にスクリプトはPowerShell(ps1)で、他の場所にある実行ファイルを呼び出すラッパースクリプトはbatになっている。

Productivity Power Tools

VisualStudioプラグイン

PowerCommands
|-General
||-Format document on save -> true
||-Remove and Sort Usings on save -> true

General
|-Compress blank lines -> false
|-Compress lines that do not have any alphanumeric characters -> false

Compress...系は無効にしておかないと英数字と2バイト文字で行幅が変わって歪になるので

Maven

ホームディレクトリの.m2からHDDへとシンボリックリンクを張っている+ホームディレクトリの方の.m2を隠しファイルにしている(邪魔なので)

mklink /d C:\Users\himajyun\.m2 (HDD)

それに加えて、.m2\settings.xmlでlocalRepositoryを設定している(二度手間なのでやらなくてもいいとは思うが)

node.js/npm

node.jsとnpm、主にディレクトリ移動

インストールはインストーラー版、環境変数などは触っていない

# Cドライブ(SSD)の容量が心許ないのでnpm-cacheを移動
npm config set cache (HDD) --global

# 同じ理由でnode_modulesもHDDに移動しておく
# (ちなみにPowerShellからはmklinkが呼べないので(クソ)、これはcmd.exeから)
mklink /d C:\Users\himajyun\AppData\Roaming\npm\node_modules (HDD)

python/pip

node同様

# pipのキャッシュ移動
mklink /d C:\Users\himajyun\AppData\Local\pip\cache (HDD)

pipのライブラリインストール先(site-packages)はシンボリックリンクで移動させるとバグる(uninstall時にリンクが消されて困る)

これは仕方ないのであきらめる、普段はvenv使うから大丈夫っしょ

Go

C直下にインストールされるのが嫌なのでC:\Program Files\Goにインストールしている(空白があるので何か不具合出るかも)

# ライブラリなどはGOPATHに入るが、環境変数は触らない主義なのでシンボリックリンクで移動
mklink /d %GOPATH% (HDD)

IntellJ IDEA

Pleiadesで日本語化している。試しに日本語化を抜いてみたら問題なく使えたので英語のまま使うことにした。

Appearance & Behavior
|-System Settings
||-Reopen last project on startup->無効
|-Appearance
||-Theme->Darcula(オタクブラック)
||-Window Option
|||-Show memory indicator->有効

Keymap
|-デフォルトを複製して少し調整
||-Main menu
|||-Edit
||||-Redo->Ctrl+Yを追加

Editor
|-General
||-Show quick documentation on mouse over->有効(遅延:500ms)
||-Auto import
|||-Add unambiguous imports on the fly->有効
|||-Optimize imports on the fly->有効
|||-Exclude from import and completion->com.sunを除外
||-Code Folding
|||-One-line methods->無効
||-Code Completion
|||-Show the documentation popup in->有効(1000ms)
||-Appearance
|||-Show whitespaces->全部有効
|||-Show parameter name hints->無効
|-Code Style
||-Line separator->\n
||-Java
|||-Wrapping and Braces
||||-Simple blocks in on line->有効
||||-Simple methods in on line->有効
||||-Simple lambdas in on line->有効
||||-Simple classes in on line->有効
|||-Imports
||||-Class count ato use import with '*'->999(実質無効)
|-File Encoding
||-Project Encoding->UTF-8
||-Defauult encoding for properties files->UTF-8
|-Live Templates
||-ctor(コンストラクタ生産)
|||-Reformat according to style->有効
|||-Applicable in Java: 全部
||-log(private final Logger...を生産)
|||-Reformat according to style->有効
|||-Applicable in Java: 宣言
|-Build, Execution, Deployment
||-BuiltTools
|||-Maven
||||-Threads->CPUコア数と同じ
||||-Importing
|||||-Import Maven projects automatically
|||||-Automatically download->Sources, Documentation

マクロ
再フォーマットして保存するマクロを作ってCtrl+Sを割り当ててる

ライブテンプレートの内容

ctor

public $class$($END$) {
    
}

log

private final Logger logger = LogManager.getLogger($class$.class);$END$

プラグインは以下の通り

  • Go
  • PHP
  • Python
  • Rust
  • Scala

JavaDocはさすがに英語だとツラいので、日本語版JavaDocをダウンロードしてきて設定している。

IDEAにはオンライン上のJavaDocを指定する機能もあるが、ここで指定したJavaDocはどうやらキャッシュとかされないらしく、 メソッドにカーソルを合わせるたびにHTTPでのやり取りが発生する+表示まで数百msの遅延が発生してつらい。なんでキャッシュされないの?キャッシュする設定とかないの?

IDEA Ultimateが1つあれば他の派生品(PhpStormとかGoLandとか)が全部プラグインという形で賄えるのは便利

Ultimate版を使うので弄ってて気付いたが、アカウントに設定を同期する機能がある

Java

OpenJDK(zip版)、単に展開してPathに入れてるだけ

もう少し細かく説明すると、Pathに%USERPROFILE%\binが入っているので、そこにJavaを呼び出すラッパーが入ってる。こんな奴。

@echo off

set jdk=C:\Users\himajyun\bin\file\jdk\bin
"%jdk%\java.exe" %*

jshellも同様。なぜこんな面倒なことをしているかというと、javaコマンドが使えれば事足りるのにPathに色々追加したくないから。

あと、それだけだとMavenなどからJavaDocを作ろうとしたりした時にうまくいかないので環境変数にJAVA_HOMEを追加している。