ぼくは明日、昨日のじぶんに頼りたい

明日のためのメモです。

Windows10でキーボード割り当て変更-その2

先週「Microsoft PowerToysのKeyboard Manager」というのがあること知り、行頭・末移動のキーをホームポジションから押しやすいところに変更しました。

  • 「無変換」→「home」
  • 「変換」→「end」

tmfmym.hatenablog.com

1週間使ってみたのですが、行頭・末移動以外もやりたくなったのと、 Macのように無変換と変換キーを使ったほうが良さそうなのでガラッと変更してみました。
キーの再マップは行わずに、ショートカットの再マップを行っています。
(Caps LockをAltに割り当てたかったのですが、ブラウザ使用時に単純に別タブ開こうとするとhtmlをダウンロードしたりとよくわからない感じになりやめました)
現在、Caps LockはCtrlに割り当ててます。この割り当てにはPowerToysは使っていません。
参考:Windows10でCaps LockキーをCtrlキーに変更する - アナグマのモノローグ

新しい割り当て

機能 Linuxショートカットキー Windowsでのキー マップ先
カーソルを左 Ctrl + b Alt + b backward
カーソルを下 Ctrl + n Alt + n next
カーソルを上 Ctrl + p Alt + p previous
カーソルを右 Ctrl + f Alt + f forward
カーソルを行頭 Ctrl + a home Alt + a
カーソルを行末 Ctrl + e end Alt + e
カーソルの文字削除 Ctrl + d delete Alt + d
カーソルの一文字前削除 Ctrl + h back space Alt + h

無変換と変換キーは、Microsoft IMEのキーの割り当て -> 各キーに好みの機能を割り当てるを利用しています。

Windows10でキーボード割り当て変更

Windows10をつかっています。
標準機能で一部変更(設定 -> キーとタッチのカスタマイズ -> キーの割り当て)はできるみたいですが、今回変更したいキーは対象になっていなかったのでメモします。

今回変更したキー

  • 「無変換」→「home」
  • 「変換」→「end」

検索したところキー割り当てを変更するソフトがいくつかありました。

検討したソフト

AutoHotkeyやChange Keyなども検索に出てきましたがMicrosoftとあるものから試していった結果です。

Microsoft Keyboard Layout Creator

Keyboard Layout Creator

目当てのキーは変更できないと思って諦めました

Microsoft PowerToysのKeyboard Manager

PowerToysKeyboard Manager10 のユーティリティ Windows | Microsoft Docs
直感的な設定でやりたいことをできました。
Microsoftも絡んでるし、このソフトを使っていくことにしました。

まとめ

これで、ホームポジションで行頭、行末移動ができるようになったので何かが捗るはずです。
PowerToysは他にもWindowsを便利にしてくれそうなものがあるので、試して使っていきたいと思います。

VSCodeのターミナルでショートカットキーを使う

VSCodeのターミナルでショートカットキーを使えるようにしてみました。

使えるようにしたショートカットキー

移動

  • 行頭
    • Ctrl + a
  • 行末
    • Ctrl + e
  • 前(右)
    • Ctrl + f
  • 後(左)
    • Ctrl + b
  • ワード単位で前(右)
    • Esc + f
  • ワード単位で後ろ(左)
    • Esc + b

削除

  • カーソルの文字
    • Ctrl + d
  • カーソルの一文字前
    • Ctrl + h
  • 行頭まで
    • Ctrl + u
  • 行末まで
    • Ctrl + k
  • ワード単位で行頭方向の文字列を
    • Ctrl + w

その他

  • 前のコマンド履歴
    • Ctrl + p
  • 次のコマンド履歴
    • Ctrl + n
  • 画面クリア
    • Ctrl + l

VSCodeの設定

keybindings.jsonに以下の設定をすることで上のショートカットを使えるようになりました

// Place your key bindings in this file to override the defaults
[
    {
        "key": "ctrl+a",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+e",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+b",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+f",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "esc+b",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "esc+f",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+d",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+h",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+u",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+k",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+w",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+p",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+n",
        "command": "",
        "when": "terminalFocus"
    },
    {
        "key": "ctrl+l",
        "command": "",
        "when": "terminalFocus"
    }
]

viでサーバ内の設定ファイルを修正する

普段はIDEとかを使っていてviを使わないので、サーバの設定ファイルを修正する場合に、すごく非効率だったので反省も込めて整理します。

例として、postgresql.confのwork_memを以下のように修正する

#work_mem = 4MB                         # min 64kB
↓
work_mem = 12MB                         # min 64kB

今まで

  1. vi postgresql.confでファイルを開く
  2. /work_mぐらいで対象に移動する
  3. インサートモードにして目的の形に修正する
    • i
    • 「#」を削除:「←」、「バックスペース」
    • 「4MB」の先頭文字まで移動して「4」を削除:「→」を12回、「バックスペース」
    • 「12」を入力

改善

  1. vi postgresql.confでファイルを開く
  2. /work_mぐらいで対象に移動する
  3. ^で行頭に移動する
  4. xで「#」の文字を削除する
  5. :s/4MB/12MB/で値部分を置換する

参考)移動系

  • 行末へ
    • $
  • 行頭へ
    • ^
  • 単語単位で次(単語文字の最初)
    • w
  • 単語単位で次(単語文字の最後)
    • e
  • 単語単位で前
    • b
  • 文字単位で次
    • l
  • 文字単位で前
    • h

もっと改善

viで設定ファイルを修正するのはやめる。手順が残りづらいので

tmfmym.hatenablog.com

% sed -i -e "s/#work_mem = 4MB/work_mem = 12MB/" postgresql.conf

AWSアカウントを作ったら最初にやるべきこと For 自分

AWSは今のところハンズオンなどで利用するだけなので、お金がかからず最低限必要そうなことのみ行いました。

アカウント周り

ルートアカウントは極力利用しないことが推奨されているので、作業用のIAMユーザを作成する

  • ルートアカウントのMFA設定する
  • パスワードポリシーの設定
  • 作業用のIAMユーザを作成する

請求周り

支払通貨の変更

日本円を選択することで、外貨取扱手数料に相当する費用を削減することが可能になるらしいので。

設定 -> お支払い通貨の設定
お客様のお支払い通貨:USD リンクをクリックする
JCBは使えなかったです。

参考

ssmonline #14に参加

ssmonline #14 - connpassの参加(視聴)メモです。
手順書に関しての話をしていました。

手順書の書き方

  • 体言止めはやめる。動詞をちゃんと使う。
  • 主語と目的語を省力しない。
  • よほどの理由がある場合以外は絶対パスを利用する。
    • → 普段やってる人がやると無意識に補完してたりするけど、絶対パスで書くのが正解と思いました。
  • ダイイングメッセージ性のあるコマンドを使う。
    • 設定ファイルの新規作成はヒアドキュメントで書く、変更はsed -eがおすすめ。
    • → 手順の中でviとかで直で修正してしまうの微妙ですよね、反省します。
  • 可読性などを考えると$()を使うようにする。

参照する
「正しい」運用手順書を作る /20181106-ssmjp-operation-procedure - Speaker Deck

ShellのGoogleのコーディング規約は目を通す

styleguide | Style guides for Google-originated open-source projects

grepのオプションをうまく使う

grep(1) manページ

grep -A, grep -B, grep -C

  • -A NUM で行の後も表示
  • -B NUM で行の前も表示
  • -C NUM で行の前後も表示

grepのオプションとか確認したことはありますが、使えそうにないと思いスルーしていたのだと思います。

IaCで幸せにならない

運用が続いていく前提で設計していないと、引き継いだ人が困る。
構築した人はできてもその後が大事。
どう構築したか、どうアップデートするつもりか残すこと。

CFnは変更に弱い、引継ぎ大変。
学習コスト高い、AWSの全サービスに対応しているわけではない。

参考:CloudFormationで管理されたシステムの変更でエラー連発した話 - Speaker Deck

CFnは実務で使ったことないのですが、引継ぎ大変はなんでも同じで前任者が学習して構築したものを、後任が無学習で理解できるほどやさしい世界になってしまうと私が仕事でできることは完全になくなってしまうと思ってしまった。

Infrastructure as Codeのつらみの原因を探れ 恐怖症による負のサイクルを断ち切る“予測可能性” - ログミーTech
これ読んでみよう