## SublimeTextのインストールと,Twitterに投稿するプラグインの作成(pythonスクリプト)
:CATEGORIES: Linux,Ubuntu,SublimeText
時刻は2020年5月8日22時09分になります。昨日5月7日の午前中にディスクトップパソコンのUbuntu20.04にSublimeText3をインストールしました。以前にもインストールして使ったことはあったのですが,余り使えるという印象はありませんでした。
なにかアプリを探していて,Ubuntuのソフトウェアセンターのようなものを起動していたとき,そこにSublimeTextがあったのも1つのきっかけになりますが,Markdownで見出し(トピック)をコピーしたり,移動させるというのも時間を掛けて探し続けていた目的でした。
各種プラグインがあるというのもAtomやSublimeTextの特徴で,Markdownを使いやすくしたプラグインを探すというのも目的の一つでした。
結論から,Markdownでドラグドラッグアンドドロップでトピックを移動させるものは見つかっていないのですが,コピーや切り取りで操作できるものは見つかりました。
Markdownを扱うエディタは多いのですが,どれを試してもドラッグアンドドロップで見出しを移動できるものは見つからず,見出しの内容をテキストとしてコピーできるものもEmacsやVimのパッケージとずいぶんと数が限られています。
Ubuntuの標準でも2,3日前にLibreOfficeのバージョンがアップされ,見出しのドラッグアンドドロップでの移動が出来るようになったのですが,Wordと同じバイナリーデータのワープロソフトと根本的な違いがあるのか,テキストファイルを扱うエディタでは出来るものが見つかりません。
本当にずいぶん時間を掛けて探し,人気のMarkdownエディタを色々と試したのですが,当然ほしいと思う見出しの内容のコピーや見出しそのものの移動が出来ないのは,ある意味不思議な発見です。
SublimeTextで見出し(トピック)の移動が出来るとわかったプラグインは「outline」になるのですが,トピックの一覧のウィンドウ枠でコピーや切り取りでの移動が出来るだけで,トピックの内容のテキストのコピーは出来ないようです。
そればかりか,トピックのコピーで,他の場所に貼り付けたりすると,トピックの一覧が消えてしまったり,不安定な挙動となるので,なんどかパッケージの削除とインストールを繰り返しました。
Atom,VSCode,SublimeTextは,マルチプラットホームでプラグインも豊富という共通性があって,それぞれ試してきたのですが,独自プラグインの作成もSublimeTextが遥かに簡単で,JavaScriptではなくpythonだと知りました。
個人的にJavaScriptよりはpythonに慣れているということもありますが,SublimeText2がpython2,SublimeText3がそれぞれpython2とpython3に対応しているということも,今日初めて知って感慨深さがあります。
pythonはRubyよりは難しさ複雑さを感じますが,JavaScriptよりははるかにましです。LibreOfficeもpythonでマクロの作成が出来るのですが,情報が乏しく,独自の決まり事が多すぎるという印象でした。
SublimeTextでの発見は,普通にカレント行での文字数がウィンドウ下部に表示されることです。Atomではファイル全体の行数,文字数などが表示され,方法を探したりしたのですがうまく解決で出来ずにいました。
ワープロソフトでは行という操作より,段落という操作が優先されたりするので,テキストの一行の取扱が信じられないほど困難になります。
時刻は22時54分になります。ふとテレビに目をやると,大津園児死傷事故の新立被告の姿があり,なにやらこれで確定するというようなナレーションがありました。控訴取り下げのことはネットの情報で見ていたのですが,テレビでは全く見ていませんでした。
LibreOfficeでもワープロソフト一太郎でも見た目の折返しが一行として扱われていました。WordのVisual Basic for Applicationsでは,なんとか処理する方法を見つけたのですが,不思議なほど厄介でややこしい処理でした。
SublimeTextのプラグインからテストツイート
— 告発\市場急配センター殺人未遂事件\金沢地方検察庁・石川県警察御中 (@kk_hirono) May 8, 2020
上記の本日18時06分のツイートが,ようやくSublimeTextのプラグインでのTwitter投稿がうまくいった時のツイートになります。pythonのモジュールのパスが読み込めないなど,解決のためのハードルがありました。
SublimeTextのプラグインとして作成したpythonのスクリプトファイルは,ずいぶんと単純明快なものとなっています。それでも直接,スクリプト内でTwitterの投稿処理をやっていることもあり,処理速度はこれまでにないほど早く,軽快でわかりやすくなりました。
スクリプトに,「self.view.run_command("save")」という一文を追加しました。これでTwitterへの投稿と同時に,ファイルが保存されるはずです。SublimeTextは,編集中のファイルが自動保存されるという特徴もあるようですが,これは要注意とも考えています。
昨日の5月7日の午後は,ZoomとLINEのビデオ通話を同時にやっていたところ,スマホに金沢から電話が掛かってきました。偶然とは思えないようなタイミングでしたが,前にもあったようなことです。