##こんなことありません...?
atomの自動補完を使っているとき
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
これを自分好みの自動補完にしたい!!
##さっそくやってみる。
困ったときのgoogle先生に聞くと、
atomのファイル>snippetsを選択するといいらしいのでやってみる。
以下のファイルが開く。
# Your snippets
#
# Atom snippets allow you to enter a simple prefix in the editor and hit tab to
# expand the prefix into a larger code block with templated values.
#
# You can create a new snippet in this file by typing "snip" and then hitting
# tab.
#
# An example CoffeeScript snippet to expand log to console.log:
#
# '.source.coffee':
# 'Console log':
# 'prefix': 'log'
# 'body': 'console.log $1'
#
# Each scope (e.g. '.source.coffee' above) can only be declared once.
#
# This file uses CoffeeScript Object Notation (CSON).
# If you are unfamiliar with CSON, you can read more about it in the
# Atom Flight Manual:
# http://flight-manual.atom.io/using-atom/sections/basic-customization/#_cson
readmeみたいなのでこれを読んでいく。
11行目~によると、
'何言語でのコマンドか(どの種類ファイルで適用するか)':
'コマンド名':
'prefix': '"キーボードで入力するもの(選択候補として出るもの)"'
'body': '"選択されたとき展開するもの"'
こんな要領で書けばいいらしいので、 ←適当過ぎない?
以下を追加した。
#cpp snippet
'.source.cpp':
#iostream
'cout':
'prefix':'cout'
'body':'cout<< <<endl;'
で冒頭述べたものも以下のようになりました(std::などを省きたかった)
##さらに...
###1.キーボードの位置
補完内容を展開後キーボード入力をどこに置くかを$で定義できる。
tabキーを押すことで$1→$2....→$Nに移動できるようになる。
また${N:"keyword"}とすることで展開後選択される文字列で設定できる。
#cpp snippet
'.source.cpp':
#iostream
'cout':
'prefix':'cout'
'body':'cout<<${1:variable}<<endl;'
###2.改行を含むスニペット
\nを用いることで改行を含めることができます。
ただしスニペット内に\nを用いるときは工夫が必要。
#cpp snippet
'.source.cpp':
#iostream
'cout':
'prefix':'main'
'body':'int main(void){\n return 0;\n}'
##おわりに
本記事ではc++についてだけ行いましたが、すべての言語で設定できるようです。
本記事等について何かガバや改善点があれば、お気軽にお願いします。
(初心者なのでガバを生成している可能性が高い)