この記事について…
普段はRuby on Railsと無縁なプログラマなんですが、今更ながら面白そうという単純な理由からRuby on Rails Tutorialをやってみようと思い立ちました。今回は前回の記事で残件として挙げたものを解決する番外編という形でやっていければと思います。
尚、Rails 5.1に対応した第4版を用いて、かつVagrantを使用した環境で進めていきます。
残件(再掲)
- PowerShell上でGitコマンドタブ補完ができるようにする。
posh-gitを使用すると可能になると何処かで読んだことがあるので、挑戦してみようと思います。 - VSCode上で2つ以上ターミナルを立ち上げたときにキーボードショートカットでターミナル切り替えできるようにする。
今のところPowerShellを2つ立ち上げて、1つはGit/Herokuのコマンドを打つ、もう1つはVagrantで構築した仮想環境に接続して Railsのコマンドを打つ、という形で学習しています。(この方法がいいのかどうかも含めて試行錯誤中…。) デフォルト設定ではターミナル切り替えにキーボードショートカットが割り当てられていないようなので、よさげなショートカットを設定しようと思います。
1. posh-gitのセットアップ
posh-gitはGitとPowerShellを統合したPowerShellモジュールです。導入するとGitコマンドのタブ補完や現在のブランチ名の表示ができるようですが、"Po"wer"Sh"ellから文字を取ってposhなんでしょうか。
詳細はGitHubのREADME.mdを参照します。
インストールする
-
前提条件
- PowerShell 2.0以上であること。
⇒ Windows 10であればPowerShell 5.0系なので大丈夫です。今回はPowerShell GalleryからインストールするのでPowerShell 5.0以上である必要があります。 - スクリプト実行ポリシーを
Restricted
から変更すること。
⇒Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
として、現在のユーザーのみRemoteSigned
に変更します。
但し、今回は後述するPowerShellプロファイルを使用して起動後にRestricted
に戻るようにしています。 - PowerShell上からGitコマンドを使用できること。
⇒ Git for Windowsのインストール時に「Use Git from the Windows Command Prompt」を選択していれば大丈夫です。
- PowerShell 2.0以上であること。
PowerShellGit経由でのposh-gitインストール
PowerShellで以下のコマンドを実行します。
PowerShellGet\Install-Module posh-git -Scope CurrentUser
Update-Module posh-git
- PowerShellプロファイルからposh-gitをインポートする設定
以降、PowerShellで
Import-Module posh-git
とコマンドを実行するとposh-gitが起動します。 しかし、毎回コマンド実行するのは面倒なので、PowerShellプロファイルを使用しましょう。 PowerShellで以下のコマンドを実行します。
notepad $profile.CurrentUserCurrentHost
メモ帳が立ち上がると思いますが、次のように記述します。
Import-Module posh-git
Set-ExecutionPolicy Restricted -Scope Process
このプロファイルはPowerShell起動時に読み込まれるPowerShellスクリプトです。
従って、スクリプト実行ポリシーがRestricted
では読み込みできない為に前提条件の項でRemoteSigned
に変更している訳ですが、デフォルトの実行ポリシーから(現在のユーザーのみとはいえ)変更するというのは気持ちのいいものではありません。
そこで、2行目でSet-ExecutionPolicy Restricted -Scope Process
とすることで、せめてPowerShell起動中だけは元の実行ポリシーに戻すようにしています。とはいえ、PowerShellスクリプトをエクスプローラから直接起動すれば動作してしまうのでなんだかなぁという感じです。他にいい方法があればご教示いただければ嬉しいです。
以上でPowerShell上からGitコマンドのタブ補完ができるようになりました。便利だなー。
2. VSCodeのキーボードショートカットカスタマイズ
VSCodeのキーボードショートカット設定を変更します。
統合ターミナルウィンドウへフォーカスするショートカットキーを設定するを参考にさせていただきました。
// 既定値を上書きするには、このファイル内にキー バインドを挿入します
[
{ "key": "ctrl+;", "command": "workbench.action.terminal.focus",
"when": "editorTextFocus" },
{ "key": "ctrl+;", "command": "workbench.action.focusFirstEditorGroup",
"when": "terminalFocus" },
{ "key": "ctrl+tab", "command": "workbench.action.terminal.focusNext",
"when": "terminalFocus" },
{ "key": "ctrl+shift+tab", "command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus" }
]
このように記述することで、ctrl+;
を押下すると編集領域とターミナル領域を行き来し、ctrl+tab
ctrl+shift+tab
をターミナル領域で押下すると複数立ち上げたターミナルを切り替えできます。これも便利だなー。
ということで、前回残件として挙げたものは解決できました。またチュートリアルを進める中で開発しづらい点が出てきたときは適宜解決していこうと思います。