ソフトウェア/atomエディタ のバックアップの現在との差分(No.5)

更新


  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[公開メモ]]

* そろそろ秀丸ともお別れ? [#g6a4b50b]

もうかれこれ20年くらい秀丸エディタにお世話になってきましたが、
atom をさわってみたらかなり良いように思えたので、
乗り換えを考えています。

ここは個人的なメモとして使わせて下さい。

Sublime はキーボードショートカットが Windows と相性悪すぎて使えませんでした。。。

* 設定画面の出し方 [#s9287a51]

Ctrl + ,

- Scroll Past End = on
- Show Indent Guide = on

** フォント [#ida08118]

Ctrl + , から Settings の Font Familiy で変更

とりあえず、「Consolas, メイリオ」で設定した。
プログラミング用フォントには皆さん一家言あるため、Web上にも情報は多い。

- [[プログラミングが捗りすぎる!コーディングに最適なフォント12選>http://paiza.hatenablog.com/entry/2015/02/10/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%8C%E6%8D%97%E3%82%8A%E3%81%99%E3%81%8E%E3%82%8B%EF%BC%81%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%AB%E6%9C%80]]
- [[Windowsで無料で使える日本語対応プログラミングフォントまとめ>http://nelog.jp/programing-fonts-for-windows]]
- [[プログラミング用フォントの CamingoCode は神>http://grooyv.hateblo.jp/entry/2015/08/14/163340]]
- [[プログラミング用フォントをまとめてみました>http://m.designbits.jp/13051409/]]
- [[Font Squirrel - Monospaced Fonts>https://www.fontsquirrel.com/fonts/list/classification/monospaced]]

atom では日本語に対応していないフォントでも、日本語フォントと並べて書けばちゃんと日本語も表示できるので、フォントの選択肢が非常に広い。
atom の特徴として、日本語に対応していない欧文専用フォントでも日本語フォントと並べて書けばちゃんと日本語も表示できるので、フォントの選択肢が非常に広いことが挙げられる。

フォントサイズを小さくしても、aes とか 1il| とか S5 とか O0 とか +* とかが容易に見分けられるかが肝?
(歳にもかかわらず文字を小さくしすぎなのがそもそもの・・・)
フォント選択の肝としては、単に字形が美しいだけでなく、フォントサイズを小さくしても、aes とか 1il| とか S5 とか O0 とか +* とかが容易に見分けられるかが肝になる。あとは % # & ! * @ , あたりの形状や見やすさも差が大きい。(歳にもかかわらず文字を小さくしすぎなのがそもそもの問題???)

あとは % # & ! * @ , あたりの形状や見やすさがどうか。

「文字サイズ」は縦方向の大きさで指定するので、フォントによって横幅はまちまちになる。

Inconsolata, M+ が MSゴシック とほぼ同じ幅で、全角と半角が 2:1 になる。
一方、Source Han Code JP は全角と半角が 3:2 になる。他はその間に入る。

Inconsolata は文字幅が小さいにもかかわらず文字間も広いため
フォントサイズを小さくすると見難い。 あと ( ) { } が見づらい。
M+ は Inconsolata と同じくらい小さいにもかかわらず、とても見やい。
当然横幅が大きい方が見やすい表示には有利なのだけれど、
字形の工夫により、大きさだけでは決まらない。

一方、Source Han Code JP は文字幅が広いので見やすい。
例えば、Inconsolata は文字幅が小さいにもかかわらず文字間も広いため
フォントサイズを小さくすると見難い。 あと ( ) { } が見分けづらい。
一方、同じ大きさの M+ は Inconsolata と同じくらい小さいにもかかわらず、もう少し見やい。
今度は字間が詰まりすぎていて見難い気もするので間くらいが良いのかもしれない?

Source Han Code JP は文字幅が広いのでとても見やすい。
多少 aes の見分けが付きにくいのと、+ と * とか近いのと、1 の形が気になるくらい。他はかなり良い。
これならもう一段フォントサイズを小さくしても判別できそうだ(本末転倒)

これならもう一段フォントサイズを小さくしても判別できそう(本末転倒)

- Source Code Pro 系
-- Source Han Code JP
-- CodeM
- Inconsolata 系
-- Ricty
-- Myrica

らしいので、Source Code Pro, CodeM, Ricty, Myrica は除外。
らしいので、Source Code Pro, CodeM, Ricty, Myrica を除外して、
いろいろ比べてみた。

Mac のみのフォントもあるけどいかんせん Windows 使いなので・・・~
Monaco は a と o の区別つくんかいな。Menlo は良さそうに見える。

[[Camingo Code>https://www.myfonts.com/fonts/jan-fromm/camingo-code/]] はとても見やすい。
ちょっと角張ってるのが個人的には好みに合わないか。
数字が小さいのもちょっと嫌かも。
*** フォント幅がMSゴシックと等しいもの [#i934e0d7]

Consolas は 1 と i とが多少似ている。! が目立たない。他は問題ない。
Camingo と同様、文字幅は小さいのに頑張っている。

Anonymous Pro は ase の違いが全く分からん。

Cousine は非常に良いような?ああ、C と c などの区別付きにくいことがあるかも。Ctrl か ctrl か分からん。

このサイズには他にもいろいろある。
四角い感じが気にならなければ Oxygen Mono がいい。

Lucida Console は O 0 の区別が付かないが、文字が大きいだけあってかなり見やすい?
Courier New は論外か。

しばらくは Consolas, Droid Sans Mono, Oxygen Mono, Source Code Pro を使い回して様子を見よう。

*** フォント幅がMSゴシックと等しいもの [#i934e0d7]
#multicolumns

MSゴシック~
&ref(ms_gothic.png); 

Inconsolatazi4~
&ref(inconsolata.png);

#multicolumns

M+~
&ref(mplus_1m.png);

#multicolumns(end)

Inconsolata は文字幅が小さいにもかかわらず文字間も広いため
フォントサイズを小さくすると見難い。 あと ( ) { } が見分けづらい。
一方、同じ大きさの M+ は Inconsolata と同じくらい小さいにもかかわらず、ずっと見やい。
ただ今度は字間が詰まりすぎていて見難い気もするか?

*** Consolas と同じ幅 [#m0c31b90]

#multicolumns

Consolas~
&ref(consolas.png); 

Anonymous Pro~
&ref(anonymous_pro.png);

#multicolumns

Camingo Code~
&ref(camingo_code.png); 

#multicolumns(end)

[[Camingo Code>https://www.myfonts.com/fonts/jan-fromm/camingo-code/]] はとても見やすい。
ちょっと角張ってるのが個人的には好みに合わないか。
数字が小さいのも嫌かも。

Consolas は 1 と i とが多少似ている。! が目立たない。が、他は問題ない。
Camingo と同様、文字幅は小さいのに頑張っている。

Anonymous Pro は ase の違いが全く分からん。

*** Cousine と同じ幅 [#te51a0d6]

#multicolumns

DejaVu Sans Mono~
&ref(dejavu_sans_mono.png);

Hack~
&ref(hack.png); 

Droid Sans Mono~
&ref(droid_sans_mono.png); 

PT Mono~
&ref(pt_mono.png);

BITSTREAM VERA SANS MONO~
&ref(bitstream_vera_sans_mono.png); 

#multicolumns

Fira Mono~
&ref(fira_mono.png); 

BPmono~
&ref(BPmono.png); 

Cousine~
&ref(cousine.png);

Oxygen Mono~
&ref(oxygen_mono.png);

#multicolumns(end)

このサイズにはいろいろある。

四角い感じが気にならなければ Oxygen Mono はかなりいい。= を並べるとくっついちゃうのは = と == と === を見分けにくくてうれしくない。

Fira Mono も異色ながら頑張ってる気がする。

Cousine も非常に良いような?ああ、使ってみると大文字と小文字の区別が付かないや。Ctrl か ctrl かまったく分からん。大文字だけ縦に伸ばしたらとても見やすくなったりしない?

DejaVu Sans Mono, Hack, BITSTREAM VERA SANS MONO は 1 がなあ。それは l では無いのですか?

Hack の % も見づらい。

カンマ , のひげが小さいフォントが多いのはなぜなのか。

BPmono はいろいろ残念。

*** それより広い物 [#z1c27941]

#multicolumns

Lucida Console~
&ref(lucida_console.png); 

Courier New~
&ref(courier_new.png); 

#multicolumns

Source Han Code JP~
&ref(source_han_code_jp.png); 

#multicolumns(end)

Lucida Console は O 0 の区別が付かないが、文字が大きいだけあってかなり見やすい?

Courier New は論外か。

Source Han Code JP は高評判も頷けるだけの見やすさだけれど、
ここまで横幅が広ければ見やすいのも当然か。
これだけ大きいにもかかわらず aes の見分けが付きにくいのはなぜなのか?

*** 結論 [#ufa42b88]

しばらくは Consolas, Fira Mono, Oxygen Mono, Source Code Pro を使い回して様子を見よう。

** 表示スタイルの変更 [#zdda6283]

Ctrl + , から Themes で以下を選択

- UI Thema : Atom Dark
- Syntax Thema: Base16 Tomorrow Dark

[File]-[Style Sheet] から styles.less を編集。

 LANG:less
 atom-text-editor::shadow {
 
   // 折りたたまれている行を見やすく
   .fold-marker {
     background-color: #888;
     padding: 0px 10px 0px 8px;
     border-radius: 3px;
     margin-left: 4px;
     &:after {
       content: '...';
       font-weight: bold;
       color: black;
     }
   }
 
 }
 
 // アクティブでないペインを少し明るく
 atom-pane:not(.active) atom-text-editor {
   background-color: #282828;
 }

* パッケージ [#f4db650f]

- 言語関連
-- language-haml
-- language-plantuml
-- plantuml-viewer
-- language-verilog
- 動作
-- Sublime-Style-Column-Selection 矩形領域選択のため
-- file-icons ファイルタイプ別にアイコンが付く
-- minimap コード全体を縮小表示 absolute mode が良い

* キーマップ [#mf089316]

 LANG:json
 'body':
   'ctrl-tab ^ctrl': 'unset!'
   'ctrl-tab': 'pane:show-next-item'
   'ctrl-shift-tab ^ctrl': 'unset!'
   'ctrl-shift-tab': 'pane:show-previous-item'
 
 'atom-text-editor':
   'ctrl-f2': 'bookmarks:toggle-bookmark'
   'ctrl-k ctrl-up': 'pane:split-up-and-move-active-item'
   'ctrl-k ctrl-down': 'pane:split-down-and-move-active-item'
   'ctrl-k ctrl-left': 'pane:split-left-and-move-active-item'
   'ctrl-k ctrl-right': 'pane:split-right-and-move-active-item'
   'ctrl-k up': 'window:move-active-item-to-pane-above'
   'ctrl-k down': 'window:move-active-item-to-pane-below'
   'ctrl-k left': 'window:move-active-item-to-pane-on-left'
   'ctrl-k right': 'window:move-active-item-to-pane-on-right'
   'ctrl-up': 'editor:add-selection-above'
   'ctrl-down': 'editor:add-selection-below'

Ctrl+Tab で表示順にタブを切り替えるようにするには
上記のように 'ctrl-tab ^ctrl': 'unset!' が必要なのだそうです。
https://github.com/atom/atom/issues/5344#issuecomment-198206865
これを見つけるのにずいぶん長いことかかりました。。。
** Tree View の右クリックメニュー [#b8e2f5e2]

- Add Project Folder
- Remove Project Folder

を使うと便利。1つ上に上がるとか、別のフォルダを指定して開き直すとか、そういうのもあればいいのに。

** Ctrl + Alt + [ で折りたたみ [#xc89c739]

関数全体を折りたたんだりできて便利。

** Ctrl + Click で複数位置にキャレットを置く [#zcbef62b]

複数キャレットが現れている状態でキー入力すると、一度にあちこちに入力できる。

ctrl+上 / ctrl+下 で、上下方向にキャレットを伸ばすこともできる。

デフォルトではこれらのキーで行の入れ替えになるのだが、
危険以外の何者でもないので置き換えた。

この機能、便利ではあるけれど、気づかずにこれをやっちゃうと危険なので気をつけないと。

キャレットを複数選択した場合に点滅速度がとても早くなるとかすれば、
少しでも気づきやすくなるような???

atom のソースに手を入れて良ければこんな感じで行けそうなのだけれど、
パッケージからではいじれなさそう???
カスタムパッケージからではこの部分はいじれなさそう。

https://github.com/atom/atom/blob/c2c3217c9dd5c4fba75fba16165fced81dd90072/src/text-editor-presenter.coffee
 LANG:coffee
 class TextEditorPresenter
   getCursorBlinkPeriod: -> 
     if @model.getCursors().length > 1
       @cursorBlinkPeriod / 2
     else
       @cursorBlinkPeriod

** pane 操作 [#q974f1c5]

: ctrl+k ctrl+arrow | 矢印方向に分割して現在の内容をそちらへ移す
: ctrl+k arrow      | 矢印方向の pane に現在の内容を移す
: ctrl+k ctrl+w     | 現在の pane を閉じる(複数の文書がスタックされていればすべて閉じる)
: ctrl+w            | 現在の文書を閉じる
: ctrl+k ctrl+n     | 次の pane へフォーカス
: ctrl+k ctrl+p     | 前の pane へフォーカス
: alt+数字           | 番号のタブを開く

* 気になってること [#r5a53441]

- 起動に時間がかかりすぎる
- 関数一覧とか、そいういうのを出す機能は?
- キーバインドがかぶっていたりするのを何とかしないと
- 検索・置換えのオプション(単語単位、選択領域など)を選ぶと選択が解除される?
-- キーボードショートカットで押せばいい
-- Ctrl + Shift + /
-- Ctrl + Shift + C
-- Ctrl + Shift + S
-- Ctrl + Shift + W
-- Ctrl + Enter
- キーマクロの記録・再生、みたいな機能は無いのかしら~
むー、それだけのために秀丸立ち上げることになりそうな・・・
- 検索・置換えも秀丸の方が慣れてる分ずっと早いなあ
- ダイアログのボタンはキーボードから Y とか N とかで押したいのだががががが
- ソースコードをバージョン管理していればすぐ気づくので問題ないけど、
- ファイルツリービューのファイル名がオレンジになっていたりする理由は?
- 普段ハードタブは使わないのだけれど、例えば Makefile ではタブ文字を使いたい
-- 自動で何とかならないのか

- 結局、秀丸の使用頻度はゼロにできない感じ


Counter: 9961 (from 2010/06/03), today: 2, yesterday: 0