Atom用のスニペットをVim用に変換するやつ
こんちゃーす、イナズマです。 この記事はAtomユーザー以外には無益です。Vimに移行する気が一ミリでもあるような(もしくはAtomとVimを併用している)Atomユーザーを対象に書いてます。
はじめに
ちょっと前までAtomだけ使ってたんですが、最近はVimをよく使うようになりました。 競技プログラミングにおいてスニペットは必須だと思っているので、Vimに乗り換えるにあたってスニペットの移行をしようと思いました。Vimのスニペットには(安定の)Shougoさんのプラグインを使います。 github.com
んで、いざ移行しようと思ったもののAtomのスニペットは.cson1というよくわからない形式で書かれていました。Vimのスニペットも.snipというよくわからない形式で書く必要がありました。 つまり単純なコピペでは移行できません。しかもスニペット本文(っていえばいいのか?)も微妙に書き方が違うので結構書き直す部分がありそうです。う〜ん困った。
作った
ということで、AtomのスニペットをVimのスニペットとして扱えるようにするnpmパッケージを作ってみました。 www.npmjs.com
最初はPythonで書こうと思ったのですが、csonっていう形式がよくわからなかったのでjsonに変換してくれるパッケージがあるNodeで書きました。 www.npmjs.com 使いにくい部分ありますが、最低限は動いてくれるかなと思います。
終わりに
文字がかなり読みにくいので文字色とか変えていこうかと思います。他にももう少し機能を追加する予定です。 すでにいくつか確認していますが、バグとかあったらIssueにおねがいします。
Issues · Inazuma110/snippets-resycler · GitHub
-
あんまり調べてないので詳しくはわからないが、jsonにコメントとかがかけるらしい。あとcoffeescriptってのに関係があるとか。↩
加藤純一の放送を見ながらコーディングをしたい
こんにちは。 今日はものすごく簡単なVimプラグインを作ってみたので紹介したいと思います。
皆さんは音楽を聞きながら作業することはあるでしょうか?ラジオを聞きながら作業をする、なんて人もいるかもしれません。
僕は、よくYoutubeやニコニコ等の動画サイトで雑談放送を見ながら作業することがあります。最近は加藤純一さんの放送をみながらコーディングをすることが多いです。
コーディング中はPCの画面いっぱいにエディタを広げたいので、放送ページは違うワークスペース、またはディスプレイに置く必要があります。しかし、ワークスペースに置くにしろ、2つ目のディスプレイに置くにしろ、エディタと放送ページを同時に視界に収めるのは困難でした。
そこで「普段使っているテキストエディタ「vim」を透過させ、その下に放送ページを置く」という工夫により、しばらくは不自由なくコーディングをしていました。 しかし、僕はcoloeschme「tender」が大好きなので、加藤純一さんの放送を見ているとき以外は透過したテキストエディタなんて使いたくありません。 github.com
はじめのうちは、加藤純一さんの放送を見るときだけinit.vimを書き換え、透過させていました。
しかし、それではやはりどうしようもなくめんどくさいので、これを機に前々から少し気になっていたvimプラグインの作成をやってみました。できたものがこれです。
「air」という言葉に深い意味はありません。壁紙を透過させる…透明なものといえば……空!!みたいな感じで10秒くらいで決めました。
今回、vimscriptにはじめて触れてみましたが「あまりにも闇が深いので下手に触らないほうがいい」ということがよくわかりました。途中で意味不明エラーが出るなどしましたが先輩にほとんど解決してもらいました。なんとか解決しました。
いろいろ不具合があるかもしれませんが、よかったら使ってみてください。
2018年8月9日
今日は15時間寝た。めっちゃ元気になった。
オワリ
MacでUbuntuを使おう!と思ったけどいろいろ設定が必要で大変だった
はじめに
こんにちは、イナズマです。
最近暑いですね。暑さに頭をやられて普段使っているキーボードを剥がして遊んでいたら、バックスペースキーが壊れてしまいました^^
(完全にキーボードクラッシャー)
キーボード壊すの楽しすぎわロタ pic.twitter.com/5bJB8eZYdC
— なずま (@1_nazuma) 2018年6月29日
この部分全部いらない pic.twitter.com/KARAC3893E
— なずま (@1_nazuma) 2018年6月29日
LinuxMint19をdynabookで使っていたのですが、仕方がないので手元にある使ってないMacでも使ってやるかと思い立ち早速LinuxMint19をMacに入れてみたのですが、ネットワークドライバ?ぱそこんにわかなのでよくわからないのですがなんかそういうやつがうまく認識されなくてネットに繋げなくて困ってました。USBからブートしてる時は認識してくれるんですけどね。
そんなこんなで一週間くらい悪戦苦闘したのですが、諦めることに。ひとつ前の18.3も試してみましたがうまく行かず。もうLinuxMintを諦めてUbuntuを入れてみることにしました。(俺達の信じたUbuntuを信じろ)
まずUbuntu18.04入れたのですが、LinuxMintと同じ症状が出てしまったの16.04入れてみるとうまくいきました。
しかーーーーーーーーーーーーーーーーし!!!!
MacでUbuntuを動かすと(おそらくハード的な問題で)dynabookの時といろいろと挙動が違うではありませんか!!!!!!!!!!!!!!
いやほんとに全然挙動が違うんですよ。ここからその挙動治す方法書き連ねていきます。(これ普通にめっちゃだるいのでThinkPad買うことオススメします、マジで)
多分18も大して設定方法は変わりませんが、これはUbuntu16.04の記事です。これは一応忘れないでください。
設定方法
echo 2 > /sys/module/hid_apple/parameters/fnmode
追記 18.04の場合は、/etc/modprobe.d/hid_apple.confに
options hid_apple fnmode=2
更に追記 OS再インストールしたらこの方法うまくいきませんでした。けどこのへんのページ参考にしたらいつの間にか治ってました。 AppleKeyboard - Community Help Wiki
を書き込むとfnキーを押さなくてもファンクションキーがいい感じに機能してくれます。
- CMDキーを片方Altキーに割り当てる。
これはまだ出来てません…だれか簡単にやる方法教えてください;; - タッチパッド一部無効化。
Macはタッチパッドが大きすぎるので右側の一部を無効化させたくなりますた。これは僕の好みだと思いますが一応。 まず、
grep range /var/log/Xorg.0.log
でタッチパッドの大きさを確認します。次に、
synclient AreaLeftEdge=BEGIN AreaRightEdge=END
のような入力をします。この入力をするとX座標BEGIN〜ENDまでのタッチパッドのみが有効になります。BEGINとENDの値はお好みで調整してください。
- PC閉じた時のバグ
これはMacが原因かわかりませんがPCを閉じてサスペンドさせると、再び開いた時Ubuntuが戻ってこなくなります。このバグ?は /etc/modprobe.d/radeon-kms.conf(なければ作成する)というファイルに
options radeon modeset=0
と書き込めば治るはずです。
追記 またおかしくなりました…。サスペンドから復帰しない場合は諦めて再起動するしかないというのが現状です… 解決方法わかる人いましたら教えてください。
追記 おかしくなったのでUbuntu18.04入れ直しました。基本的にはここに書いてあることまま行えば不具合は治ります。 以下はすべてUbuntu18.04のみで試したことです。
- Alt+tabでのアプリケーションを同じワークスペース限定にする。 ターミナルにて
gsettings set org.gnome.shell.app-switcher current-workspace-only true
最後に
ブログ書くの普通にめんどくさいですね… でもこれ忘れたらもっとめんどくさいことになるので嫌でも書いといたほうがいいかなと思い書きました。よかったら参考にしてみてください。
Linux Mintセットアップメモ
個人用のメモです。OSをとっかえひっかえするのに少しハマっているのでやるべき設定を書いておきます。
設定
スタートボタンを押してシステム設定より行います。
- スクリーンセーバーの設定
- デスクトップの設定からアイコンがデスクトップに表示されないようにする
- ワークスペースの循環
- サウンドでいらない効果音を消す
- 電源管理でほっといても電源が切れないように
- ソフトウェアソースからメインとベースのサーバを設定
- デスクレットから時計を表示
ターミナルから叩く
ここはdotfilesのinstall.shに書いておいたほうがよさげ
- ホームディレクトリを英語にする
LANG=C xdg-user-dirs-gtk-update
- Atomを入れる(バックアップ)
- ターミナルの文字サイズ設定
- 全角スペースをなくす
sudo apt-get install mozc-utils-gui
でMozcをGUIで開けるようになる。
- cpull
sudo npm install -g https://github.com/ctare/minit
追記 bashrcに全部書いたのでここは省きます……
その他
- 右下のカレンダーを右クリックし、書式を「%m/%d %H:%M」に変更
整数型変数の中身の交換
多分競プロerでは常識なんだろうけど。 でも自分は初めてしったのでメモしておきます。
例えば
int a = 15; int b = 32;
みたいな変数があって変数の中身を交換したいと。つまりaを32、bを15にするということです。
このようなとき、自分は今までこのような処理を行っていました。
int a = 15; int b = 32; int tmp = a; a = b; b = tmp;
しかしXORを用いるとこのような処理によっても同じ操作ができます。
int a = 15; int b = 32; a ^= b; b ^= a; a ^= b;
これでゴミ変数を作らなくて済みます。
が、可読性の観点からゴミ変数作ったほうがいい気がします……。しかも実行速度も早くなるわけではなさそうです………。 結局は個人の好みでしょうか。