Warning: Declaration of FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Tags::wrap($content, $before, $sep, $after) should be compatible with FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Category::wrap($content, $sep, $parents) should be compatible with FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Post_Thumbnail::wrap($html, $post_id, $post_thumbnail_id, $size) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Post_Meta::wrap($data, $post_id, $key, $ui, $single) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Widget::wrap($params) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/widget.php on line 0

Warning: Declaration of FEE_Field_Comment::wrap($content) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Term_Field::wrap($content, $term_id, $taxonomy) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Single_Title::wrap($title) should be compatible with FEE_Field_Term_Field::wrap($content, $term_id, $taxonomy) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Option::wrap($content, $key, $ui) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0
Notepad++ | Sabakura Blog

Notepad++でのSSH接続にはOpenSSH形式の秘密鍵を利用する

Windows用高機能エディタ「Notepad++」には、エディタ内から直接サーバーに接続してファイルの削除やリネーム、編集を行うことができるプラグイン「NppFTP」が付属しています。(参考:Notepad++のFTPプラグイン「NppFTP」の設定方法

じつはこの「NppFTP」では通常のFTP以外にも、FTPS(FTP over SSL)、さらにSFTP(SSH)にも対応しています。

しかし先日、契約しているVPSにSSH接続(公開鍵認証)で繋ごうとしたところ、下記のようなエラーが出て接続が行えませんでした。

[NppFTP] Everything initialized
Connecting
[SFTP] Host key accepted
[SFTP] Error during authentication: Invalid private key file.
Unable to connect

Disconnected

「Invalid private key file」という部分から察するに、どうも秘密鍵の認証が上手くいっていないようです。しかし、この秘密鍵は通常はSSHクライアントのPoderosaで問題なく認証が通っているファイルです。

で検索してみたところ、ある情報にたどりつきました。

If it says Invalid private key file, the key probably isn’t an OpenSSH key
・NppFTP not working via SSH – sourceforge

つまりNotepad++でのSSH接続には、秘密鍵がOpenSSH形式である必要があるとのことです。

Poderosaで使っている秘密鍵は独自形式のため、これをOpenSSH形式に変換する必要があります。変換については、Putty付属のツール「puttygen.exe」を用いるのがもっとも簡単だと思います。これについては以下の記事が参考になりました。

・poderosaの秘密鍵をOpenSSH形式に変換する – (゚∀゚)o彡 sasata299’s blog

上記記事の手順に従い、秘密鍵をインポートして変換後、メニューバーからOpenSSH形式でエクスポートすることで新しい秘密鍵が作成できます。
これを用いてNotepad++からの接続を試したところ、正常に認証がとおり接続可能となりました。

Notepad++のスタイル設定をカスタマイズする

海外で人気の多機能エディタNotepad++において、色設定(シンタックスハイライト)をカスタマイズする方法について説明します。

なお「Notepad++ v5.8.7-6(EUC-JP対応版)」をもとに解説します。

Notepad++の色設定について

プログラミング言語ごとに色設定を変えるシンタックスハイライトが、Notepad++ではかなり柔軟に設定できるようになっています。プロポーショナルフォントや日本語フォントも問題なく利用できますし、色だけでなく、太字・斜体・下線などの書式もこまかく設定できます

ただそのぶん設定方法がいくぶん分かりにくく、Notepad++を使い出した頃は自分もどう設定するかよく迷ったので、ここで解説してみます。

スタイル設定のカスタマイズ

Notepad++では色設定は「スタイル設定」と呼ばれています。
メニューバーの「設定」→「スタイル設定」をクリックし、「テーマを選択」のリストボタンから既存のいくつかのスタイルを設定できます。
今回はこの一覧にオリジナルのスタイルを追加し、自由にカスタマイズしてみます。

スタイルの追加

いちから自分のスタイル設定ファイルを作るのは大変ですので、既存のスタイルファイルをコピーしてカスタマイズすることにします。

  1. Notepad++をインストールしたフォルダの「theme」フォルダを開き、既存の適当なスタイルをコピーして名前を変更します。(今回の例では「zenburn」をコピーして「MyStyle」にしました)
    スタイルコピー → スタイルコピー
  2. Notepad++を再起動します。
  3. メニューバーの「設定」→「スタイル設定」をクリックし、「テーマを選択」の一覧に新たに追加されている「MyStyle」を選択します。

Global Stylesのカスタマイズ

Notepad++では、各言語別の設定とは別にGlobal Stylesと呼ばれる設定があります。言語それぞれの設定をしていない場合でも、このGlobal Stylesがまず反映されます。

  1. スタイル設定画面の「言語:」から「Global Styles」を選択します。
  2. 「コメント:」の「Global override」を選択します。

    • 「Global override」は他言語すべての設定を上書きするものです。
      フォントや色をここで設定し、なおかつ「~を他のスタイルにも適用」にチェックを入れていると、各言語のフォントや色を個別に設定しても反映されなくなります。(=各言語の設定よりも「Global override」が優先的に選択されます)
    • 色などは言語別に個別に設定したいことが多いと思いますので、「Global override」を使うのは「背景色」「フォント名」「フォントサイズ」あたりにしておくことをおすすめします。
  3. そのほかの「Global Styles」を設定します。各設定は以下に示します。

Default Style
基本的な文字色や背景色、フォント名…etcを設定します。(Global overrideで「他のスタイルにも適用」にチェックを入れていない場合は、この項目がデフォルトになります)
Indent_guideline_Style
開始タグと終了タグの対応関係を示す点線部分に適用されるスタイルです。
Brace highlight style
タグや括弧の前後にカーソルがある場合に、対応するタグor括弧が強調表示されます。その強調表示のスタイルです。
Bad brace colour
きちんと閉じられていないタグや括弧を強調表示する際のスタイルです。
Current line background
現在行を強調表示する際のスタイルです。
Selected text colour
テキストを選択した際のスタイルです。
Caret colour
キャレット(カーソル)のスタイルです。
Line number margin
行番号のスタイルです。
Fold
行の折り畳み操作部分のスタイルです。
Fold margin
行の折り畳み操作部分の背景のスタイルです。
White space symbol
タブ・空白スペースのスタイルです。
Smart HighLighting
特定の単語をダブルクリックで選択した際、ファイル内の同じ単語を強調表示する「スマートハイライト」のスタイルです。
Incremental highlight all
インクリメンタルサーチを行う際の強調表示スタイルです。
Tags match highlighting
開始タグに対応する終了タグを強調表示する際のスタイルです。(Brace highlight styleと似ていますが、Brace~は括弧全般にも反映されるのに対し、Tags match~はタグのみに設定されます)
Tags attribute
タグ内の属性部分のスタイルです。
Active tab focused
タブ一覧部分における、現在のタブのスタイルです。
Active tab unfocused
ビューを二画面にしている場合に、アクティブになっているのにフォーカスされていないタブのスタイルです。
Active tab text
現在のタブの文字色のスタイルです。
Inactive tabs
現在選択されていないタブのスタイルです。
Find Mark Style
検索時に「Mark」タブから「すべて検索」を実行した際に検索結果を強調表示する際のスタイルです。

※「Edge colour」は公式だと「Color of the vertical edge.」となってるんですが、ちょっと使いどころが分からなかったです。

言語別のカスタマイズ

次に各言語別の設定を行います。
言語ごとに設定項目が違いますが、ここでは「HTML」を例にとって説明してみます。

DEFAULT
メニューバーの「言語」からHTMLを選択した場合のデフォルトの設定です。(ただし「Global override」を設定している場合は「Global override」が優先されますので注意してください)
COMMENT
コメント部分のスタイルです。
DOUBLESTRING
ダブルクォーテーションで囲まれた文字列のスタイルです。
SINGLESTRING
シングルクォーテーションで囲まれた文字列のスタイルです。
TAG
タグ部分のスタイルです。
TAGEND
<br />のような「/>」部分に適用されるスタイルです。
TAGUNKNOWN
Notepad++がHTMLタグとして認識していないタグに適用されるスタイルです。
ATTRIBUTE
タグ内の属性部分のスタイルです。
ATTRIBUTE
Notepad++が認識していない属性部分に適用されるスタイルです。
SGMLDEFAULT
SGML(標準一般化マーク付け言語)のデフォルトスタイルです。
CDATA
CDATAのスタイルです。
ENTITY
文字実体参照部分のスタイルです。

すべての設定が終わったら「保存して閉じる」をクリックします。

まとめ

一番注意しないといけないのは「Global Styles」内の「Global override」だと思います。重ねて書きますが、ここで「~を他のスタイルにも適用」にチェックを入れると、他のすべての設定を上書きしてしまうので注意してください。

Global overrideを使うと設定はすぐに済みますが、こまかな設定はしにくくなります。徹底的にカスタマイズしたい場合は、Global overrideは使わずにおくことをおすすめします。

Notepad++の場合、しようと思えば「タグ」「文字列」「コメント」それぞれにすべて違うフォントを設定したり、コメント部分だけ文字サイズを小さくしたりなど、とても柔軟な表示設定ができます。ぜひ自分好みの環境をつくりあげてください。

Notepad++のFTPプラグイン「NppFTP」の設定方法

この記事ではWindows環境で動く多機能エディタ「Notepad++」のプラグイン「NppFTP」の設定方法を解説します。

NppFTPは、FTPを利用して、エディタから直接サーバー上のファイルを編集できる(正確には直接編集しているように振舞える)ようにするプラグインです。
詳しくは、以下の記事も参考にしてください。

・参考:脱FTPクライアント!notepad++のすすめ

NppFTPの設定方法

なお、以下の設定はNotepad++ EUC-JP対応版のVer 5.8.7-6 (UNICODE) を元にした記述です。(NppFTPプラグインはソフト自体に同梱されています)

  1. Notepad++を起動します。
  2. メニューバー「プラグイン」→「NppFTP」→「Show NppFTP Window」をクリック。
  3. ウィンドウ右側に表示されるNppFTPウィンドウの「Settings(歯車マーク)」→「Profile Settings」をクリック。
  4. 「Profile Settings」ウィンドウ左下の「Add new」をクリックし、プロファイル名(通常はサイト名でOKです)を入力して「OK」をクリック。
  5. 「Connection」タブの「Hostname」にFTPサーバーのアドレスを入力します。
  6. 「Connection type」は「FTP」を選びます。(サーバーがSFTPなどよりセキュアなものに対応していればそちらを選んでもOKです)
  7. 「Port」にポート番号を指定。(多くの場合は21のままでOKです)
  8. 「Usernamae」と「Password」にFTPアカウント名とパスワードを入力します。
  9. 「Ask for password」のチェックを外すと、毎回のパスワード入力作業を省略することができます。お好みでチェックを外してください。
  10. 「Timeout」にサーバーをタイムアウトするまでの時間を設定します。
  11. 「Initial remote directory」に、サーバー上で最初に表示させたいディレクトリを指定します。(たとえば毎回「/public_html」にアクセスするなど設定できます)
  12. 「Cache」タブを開き、「Local path」の参照ボタンをクリックします。
  13. ローカルマシン内でサイトのファイルを保存しているフォルダを選び、「OK」をクリックします。
  14. 「External path」に、ローカルフォルダと同期させたい、サーバー上のディレクトリを指定します。
  15. 「Add new」をクリックします。
  16. 「Close」をクリックすると、設定は完了します。

設定のポイントは「Local path」と「External path」で、ここに記述したフォルダ(ディレクトリ)がローカルとリモート(サーバー)で同期されるようになります。

たとえばですが、Local pathを「C:public_html」、External pathを「/public_html」にすれば、Cドライブ直下のpublic_htmlフォルダと、サーバーのpublic_htmlディレクトリが同期されます。

なお、サーバー上のフォルダ構成はレンタルサーバーのサービスによっても異なりますので、よく確認のうえで設定するようにしてください。