風待ち

プログラミングの勉強や日々の出来事のログなど

Visual Studio Codeで英数字と日本語で別のフォントを利用する Windows7

Visual Studio Codeを英数字は「Consolas」、日本語は「メイリオ」で使いたい。

VS Codeを起動して、ユーザー設定を開き下記を追記すると思ったように表示されるようになった。

"editor.fontFamily": "Consolas,メイリオ",

先に指定したフォントが優先で使われるみたいで、メイリオを先に指定すると英数字も日本語も表示できてしまうので、Consolasの出番はない。

なので、日本語フォントのないConsolasを先に指定すると、英数字はConsolasが表示され、日本語はメイリオで表示される。

英数字と日本語で微妙にフォントサイズが違う感じはするが、コードはConsolasで見たいので、妥協する。

コードとコメントを読む時は、同時に見てはいるけど認識のしかたが違うというか、何となく、別の感覚で読んで認識しているので、フォントや色やサイズが違う方が自分にはより理解しやすい。

たぶん、自分の中でコードは少なくとも書いてある通りに動いる事実があり(その動きがバグであろうが)、コメントは書いた時にはそういうつもりだったんだろう、書いた人の中ではな。くらいの感じで読んでいるからなのかもしれない。

emacsにdesertテーマを追加する。

vimのdesertテーマに出会ってから、他のエディタや開発環境を使う時でも、テーマの設定ができるものなら、desertテーマを追加している。

人気のあるカラーテーマではないとは思うけど、自分には長い時間見ていても疲れないし、一番しっくりくる色合いで、好んで使っている。

emacsにはdesertテーマは追加しないと無いようなので、テーマを追加してみた。

微妙に色合いが違うけどその辺は雰囲気が似ていればいい。

GitHubここからdesert-theme.elを落としてくる。

こうやって作ってくれている人がいると、自分以外にも同じものが好きな人がいることがわかってちょっと嬉しい。周りにはこのカラーテーマに賛同してくれる人がいないので、日々ちょっと寂しい気持ちでいる。

テーマを設定する前に落としてきたファイルを.emacs.dの下にthemesを作ってその中に入れておく。

mkdir ~/.emacs.d/themes/
mv desert-theme.el ~/.emacs.d/themes/

入れたら、init.elに設定を追加すれば反映される。

;; テーマの追加
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(load-theme 'desert t)

emacsでHelmを使っていても、ファイルを開く時にはDiredを使いたい場合にinit.elに書く事

Helmは全部を同じように扱えるから便利。

だけど、たくさんのファイルを順番に編集する必要がある時には、Diredを開きっぱなしで作業した方が効率がいいと思う。

ウィンドウを分割して、片方でDiredを開いておいて、もう片方でファイルを表示させ、切り替えて使う。

特にDiredで気に入っているのは、そのフォルダ内のファイルを絞り込むのに、正規表現を使えるのがいい感じ。絞った状態でファイルリストを表示しておけば、関係ないファイルを開いてしまう煩わしさをはじめから排除できる。

そういう使い方を好む人はHelm設定の下の方に下記の設定をinit.elに書けばいい。

(add-to-list 'helm-completing-read-handlers-alist '(find-file . nil))
(add-to-list 'helm-completing-read-handlers-alist '(dired . nil))
(add-to-list 'helm-completing-read-handlers-alist '(howm-list-grep-fixed . nil))

ついでに、howmで固定検索する時にも元の処理を使うようにする。

Windows7でemacsを起動した時に最前面にならない

git for windowsからemacsを起動した時にまれに、後ろに隠れてアクティブウィンドウにならず、いちいち切り替えるのが面倒なので調べてみた。

レジストリ

HKEY_CURRENT_USER/Control Panel/Desktop/ForegroundLockTimeout

を「200000」->「0」にして再起動すればいいらしい。

変更して再起動したら、常に最前面に表示されるようになったのでよかった。

emacsが問題というわけではなく。

どのアプリでも起こる問題みたいだが、自分の環境ではemacsでしか発生していない。

常にではなく、たまにしか起きない現象だから、Windowsemacs使ってるために起こるなんかの嫌がらせかと思ったよ。

npmのcacheフォルダの場所 Windows7

npm installした時にエラーになって、どこにキャッシュされているのか気になったので調べてみた。

公式ドキュメント

cache

Default: ~/.npm on Posix, or %AppData%/npm-cache on Windows.

The root cache folder.

CMDを開いて場所を確認。

CMD> echo %AppData%\npm-cache

C:\Users\[user name]\AppData\Roaming\npm-cache

Bootstrapのnavbarの中でプログレスバーを表示するには。

navbarの中にそのままprogress-barのタグを入れても表示されなかったのでメモ。

progressの一つ上のdivでwidthを100%にしてあげると表示される。

<nav class="navbar navbar-light bg-light">
  <div style="width: 100%">
    <div class="progress">
      <div class="progress-bar" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
    </div>
  </div>
</nav>

PowerShellで複数ファイルを一括でgrepしていたのをBashでやるにはどうしたらいいのかわからなかったので調べたメモ。

複数ファイルのgrepIDEを使った開発ならそこで検索すればいい。

けど、単にエディタで書いているだけの小さなバッチやSQLなんかは、やたらファイルの数だけはあって、変更箇所がどの程度影響するのかを調べるのは割と面倒。

そんな時、複数ファイルを一括でgrepする時によく利用しているPowerShellのコマンドをBashでやったらどうなるか調べた。

前に書いた行数を調べる方法とたいして変わらない。

PowerShellでGet-Content(cat)する前に、$_.nameしているのは、どのファイルでヒットしたかわからなくなるからファイル名を出力してからSelect-String(grep)している。

PowerShell

PS> Get-ChildItem -Recurse -Include "*.sql" | % { $_.name; Get-Content $_ | Select-String "keyword" }

Bash

$ find . -type f -name "*.sql" | xargs grep -i "keyword"