1 予備チュートリアル
2 はじめに
上記のプレチュートリアルでは、keil のダウンロード、インストール、設定は非常に明確でしたが、最近問題に遭遇しました。つまり、AStyle プラグインを使用してフォーマットした後でも、インターネット上にあるコードは非常に乱雑です。 、行末ファイルの末尾のスペースや空白行はまだ削除できません。これは強迫性障害にとって非常に不快です。なぜなら、行末のスペースを削除するVSCodeのファイル保存設定が気に入っているからです。ファイルの最後に空白行があるので、Keil にこの「古代のエディター」を丸ごと渡したいと思います。
3 Keilプラグイン制作
幸いなことに、Keil は古いスタイルではありますが、プラグイン拡張機能もサポートしているため、目的の機能を実現するプラグインを作成できます。ただし、最初にプラグインの動作原理を基本的に理解する必要があります。 。
プラグインはメニュー バーの [ツール] で設定します。
このインターフェイスは非常にシンプルで、実行コマンド (ボタンをクリックしたときにどのコマンドが実行されるか)、初期位置 (コマンドが実行される位置。現在のフォルダーの問題が関係する可能性があります)、パラメーター (コマンドの実行時に追加する必要がありますパラメータ); 右側の 3 つのチェック ボックスは、Run Minimized
操作中にブラック ボックスが生成されないことを意味します (存在する場合)。文字通りの意味は、Prompt for Argument
パラメータ入力のプロンプトがポップアップ表示されることです。は使用されておらず、Run Independent
単独で実行しても無駄です。
ポイントとなるのは、!E
現在編集中のテキストファイルを示すパラメータ部分で、$E
現在編集中のテキストファイルが置かれているフォルダを示します。その他はあまり一般的には使用されません。
詳しい手順については、この記事を参照してください
基本的なロジックを理解したら、プラグインの作成を開始できます。使用するプログラミング言語は最も馴染みのある Python ですが、ここでのコマンドは py スクリプトをサポートしていないため、それ自体を実行プログラムとしてエクスポートする必要があります。 pyinstaller パッケージを使用します。
私が達成したい機能は主に、各行の末尾の空白スペースとファイルの末尾の余分な空白行を削除することです(空白行は1行だけ保持されます)。コードは次のとおりです。
## format.py
import chardet, sys, glob
def format_file(filename, default_encoding='gb2312'):
''' @func: 去除文件末空白行, 去除行尾空格
@para filename:文件名; default_encoding:默认编码
@return: None
'''
try:
content = open(filename, 'rb').read() # 以字节方式读取
except:
print("文件"+filename+"打开失败")
source_encoding = chardet.detect(content)['encoding']
string = content.decode(source_encoding if source_encoding else default_encoding, 'ignore')
out = "\n".join(map(str.rstrip, string.rstrip().splitlines())) #删除文件末空行,并去除行尾空格
out = out + "\n" #行尾加一行空行
if out == string:
print("文件"+filename+"不需要格式化")
return
with open(filename, 'w') as f:
f.write(out)
print("文件"+filename+"格式化完成")
if __name__ == "__main__":
try:
filename = sys.argv
filelist = sum(list(map(glob.glob, filename[1:])), []) #获取所有文件名
# print(filelist)
list(map(format_file, filelist))
except Exception as e:
print(str(e))
# print("参数传入错误或没有传入参数")
次に、pyinstaller を使用してスクリプトを実行可能プログラムにエクスポートします。
pyinstaller -Fw ./format.py
.c
以下の図に従ってパラメータを設定でき、フォルダー内のすべての.h
ファイルがフォーマットされます。
4 その他のチュートリアル
- 系のいくつかのプラグイン- これらの機能はある程度クイックテンプレートで置き換えることができ、プラグインは変更履歴を削除するため、つまり、変更履歴を削除することはできないため、これらのプラグインは個人的にはほとんど意味がないと考えています撤回されることになりますが、これはあまり便利ではありません。
- ファイルの読み取り可能属性を変更します。これは少し興味深いものです。使用されるコマンドはプログラムを実行するものではなく、bat ファイルを実行するもので、内容は比較的包括的です。