VimをWindows(VC++2017)でコンパイルする
kaoriya版最新版の8.0.0596ではshellでcmdを開けるものの,画面分割では無い.また,場合によっては別ウィンドウの方を閉じなければならないと面倒だったので,単純に最新版のVim組み込みterminalが使いたくて自分でコンパイルしてみた.持ってるマシンも大学の環境も64bitなので,x86_amd64でコンパイルしている.使用ツールは以下の通り.
- VisualStudio2017 Community版(インストール済み)
- github.com/vim/vim を使用
- cmd.exe
- msys2(amd64) ---msys2はmingw64を使用
環境
1. 下準備
- cmd.exeを開く
- C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.batを叩く
- ~/vim/srcに移動しておく
msys2はまっさらなインストール状態からpacmanで次を叩く(一部重複有) :
base-devel msys2-devel mingw-w64-x86_64-boost mingw-w64-x86_64-toolchain git
gitのインストール時にVimも入っていくが,ここでのmsys2の役割はwinptyのコンパイルなのでこれも気にしない.
2. winptyのコンパイル
- msys2のmingw64を開く
- https://github.com/rprichard/winpty をclone
- ./configure
- make
ここまででwinpty-master/build/にwinpty.dll,exe,lib,winpty-agent.exe, winpty-debugserver.exeの少なくとも5つが生成されていることを確認する.
configureでのエラー
最初これがうまくいかず数週間放置してたが,普通にパッケージインストールして「/bin/mingw64で」叩けば普通に出る.
3. vimをコンパイル
- 1.で次を叩く :
nmake -f Make_mvc.mak GUI=yes IME=yes MBYTE=yes ICONV=yes CSCOPE=yes NETBEANS=yes DEBUG=no
gvim.exe他が生成される.GUI=noにするとvim.exeも生成される.面倒なのでバッチファイルにして入れておく.
4. ディレクトリを作る
- USBメモリから使用しなければならない(特に大学)ため,適当なディレクトリを作って各種ファイルを入れていく.構成は Vimの:terminalを試したいのでソースからbuildした(windows) - Qiitaを参考にした.
- vim.exeも入れておいた.どこかで使い道を見つけるかもしれない.
- エンコーディング対策でlibiconvをmsys2から探して入れておく.
5. 完成
6. 課題
まとめ
意外と簡単だった.Linuxだと毎週ビルド挟んでるので,これでWinでも同じようにできる.
...プラグインに続く...
参考
Visual Studio 2013 で Vim をビルドする - Qiita vim-jp » VisualStudioを使ってのビルド方法 Vimに:terminalが実装され、Windowsではコマンドプロンプトが動くと知り試してみた - non vorrei lavorare GitHub - rprichard/winpty: A Windows software package providing an interface similar to a Unix pty-master for communicating with Windows console programs. Vim/GVimのビルドと実行環境の作成 - fudist
libncursesの方だった、という話
1週間ぶりくらいの記事です。冬って気分下がって嫌ですね。去年の冬はほぼ再発して、一昨年の冬も最悪な状況だったし、ろくなことが無いのでそろそろこんな季節が無くなってほしいくらい。そろそろ薬で何とかする、というのも避けたいところです。
chromeではなぜかトップバー(でいいんかな)が表示されず毛き始められないのでEdgeで書いていますが、長引くとメモリ食いまくるので早めに書き上げます。
さて、仮想マシンにはいってるubuntu16.04LTSのVimをまだ8.0に上げてない事に気づき、コンパイルしてきました。configureオプションはいつもの通りだったんですが、ターミナルライブラリがなぜか無いと怒られてしまいます。
結論から言えばlibncursesを入れ忘れてた、という所です。最初に怒られてからググったときはncurses-dev/develを入れたらおk、という風になってましたが、「そのままの」名前では勿論インストール候補には上がってきません。なので、debianパッケージ検索で調べるとlib~の方が出て来た、という顛末でした。
Vimはなんとかコンパイルでき、勿論そのままインストールまで行ったので漸く8.0になりました。標準の貧弱パッケージマネージャにこんにちはしてきます。
VSCの話
あけましておめでとうございます。三が日からは大きく外れてしまいますが、それでも割と明けて早い時期に書けているのはまだマシな所だと思います。
最近ちよっとしたスタイルの変化があって、普段使いするエディタをGVimからVisual Studio Codeに変えました。dlangを再開したのもその一つの要因なんですが、それ以上にインデントの問題がありました。大学の授業で提供されるコードが全て幅2で、自分のスタイルでは4なのですが、直そうといくらか頑張ったにも関わらず解消されなかったことが1つ目です。
もう一つ大きな要因があるとすると、git関係ですね。自分で情報集めてなんとかしろよ、というのはあったんですが、インデント問題とgit、細かいですがスニペットとかの問題もあって一々コマンド叩くのが面倒になってきた、というのが大きい所です。
VSCを使うにあたってまず問題になったのがメモリで、立ち上げたはいいものの裏でHD動画でも流しようものなら簡単に消費量が跳ね上がる、という状況が多発しました。なので持ち合わせている2GBを追加して6GBに増やし、将来的には10GBくらいあれば流石にどんな作業でも困ることはないんじゃないかなぁ、と思っています。
VSC自体ですが、メモリ増やせば特に何でもないです。GVimが、というか方向性が違うんで何とも言い難いんですが、基本的に欲しいものがデフォルトになっている辺りは評価が高いです。GVimであればプラグイン入れてようやく整ってきたかな、という初期構成の時間を別の事に充てられるとあたりはありがたいですし、マーケットプレイスがやたら充実してて、依存関係とか注意しなくても良いのが楽。
ということでVimキーバンド使えるようにしてからC+/dlang/JSとかJavaとか書けるようにしたヤツをWin/Linuxともに使ってます。Linuxだと頻度は高くないものの、ちょっとしたことにだけならVimを使うことがありますが、普段コード書く時は完全にVSCに置き換わりました。
こんな感じで、徐々にCLI一強からGUI+CLIという風にミックスして使い始め(ているつもり)ました。特にgit周り最高ですね。スニペットなんかもまぁまl使い勝手がいいようなので(C++では)、これを書いている直前にはdlang用のスニペットを書き換えるなどし、より楽にコーディングできるように改善していこうと思っています。
お気に入りのキーボード、マウス、コーヒー
キーボードとマウスとコーヒーと Advent Calendar 2017 - Qiita の23日目(合計で4日目)の記事です。
最終日も考えたけど気が楽なので飛び入りさせてもらおうという発想で…(オイ
キーボード
自宅
https://www.amazon.co.jp/gp/product/B010V4YK5U/ref=od_aui_detailpages00?ie=UTF8&psc=1
青軸です。ゲームも全部これかなぁ。でも2年くらい使ったしそろそろ買い替えたい。
自宅アンド学校
DIATEC|ダイヤテック株式会社 製品情報
DIP設定は2以外全てOFFです。Ctrlはキーバインドの都合上毎回使うので。
あと'15年に3万くらいで買った中古のNEC VK17HB-Dのキーボード(JP配列)も家のWin機に比べればだいぶ打ちやすいです。事情により爪が長いので、アイソレーションタイプは非常に打ちにくい。
US配列にする理由は、-,=,+,_と"が打ちやすいからでしょうかね。あとはスペースバーが長いのでゲームにも有用です。JP配列に戻ってこれなくなりました。
Majestouch MINILA Airが赤軸な理由は、流石に静まり返った教室内で青軸の打鍵音が響くのはどうかと思ったからですが、結果的にそんなに大差ないのかもしれません。Enterキーはッターン!しない派閥です。
マウス
buffalo.jp
Bluetoothマウス、取り回しやすさか電池かを選ぶなら間違いなく前者なので。前出のMajestouch MINILAがAirである理由もこれです。また、静音モデルなのも特徴的で、耳栓しなくても殆どクリック音が気になりません。
5ボタン有線レーザーマウス - M-LY2ULシリーズ
お家用。FPSするとか、細かい作業するとかはこれ使ってます。来月で3年半くらいですかね。
コーヒー
どちらかというと紅茶派なのであんまり飲まないです。なのでペットボトルや缶が多いですね。
ほぼ毎日飲んでるかなぁ。コーヒー系の中では最も多いです。
この2つしか飲まない、といっても過言じゃないかもしれないですね。基本的に豆から、というのは手間かかりそうでやってないです。機材も。
とHHKBLite2のUS配列モデルが欲しいですね。特に前者は最近見たどこかのサイトの記事でも触れられていましたし。
Google Keep は いいぞ。
初めてMarkdown使って書きます。
Google Keep、使ってる人居ますか?最近使っていて結構良いのでは、という感覚になり始めてきたので、感想とかメリットとか書こうと思います。
固定を使う
何か書いたとき、保存する前/編集中に右上に固定するかどうかピンが出ています。これを付けることでメモを固定できます。
開いた瞬間に最上位に表示される Todoistとはまた違う良さです。特に、日付関係なく固定ピンを付けたもの全てが表示される、というあたりが良いですねぇ。
優先度順 メモを取るときやToDoとして使うとき、優先的にやっておきたいものを特に固定しています。また、画像のように自分でtask番号を割り振るなどして、ただ固定するだけにしないようにしています。
ラベルを使う
Twitter(など)によくあるハッシュタグですね。例えば、技術書とかQiitaとかをラベルにして、後から読むときに探しやすくするなどしています。
Google Keep拡張(chrome)
- chromeしか使ってないのでその他のブラウザのことはあまり分からないのですが、chrome拡張もあります。これにより、わざわざ追加しにkeepに飛ばなくてもすぐサイトを登録して後から読むなどしています。
リマインダー
他のアプリケーション同様に、リマインダーを指定することができます。20時、翌8時、それから特定の場所(私は使っていませんが)など指定できます。 - 使う最大の目的はやはり忘却防止だと思いますが、特に忘れやすいので、こうでもしていなければ思い出すのもままならない、というのもありますね。
アプリを使う
確かPlay板、App Store板共にあるはずです。次のような使い方をしています。
出先や授業中などのPCが目の前にない環境
ちょっとしたメモや覚書きに
紙に書き込むよりずっとホアィ!
特に1を使うことが圧倒的に多いです。授業中なんかは割り当てられたPCが「確実に」目の前にある、という状況ばかりではないので、基本的に指示があれば直ぐに書いています。
では、ここで私から見たメリットとデメリットを多少。
メリット
- 確認の速さ
- Googleのホーム画面からすぐ飛べる
2については言わずもがな、1についても優秀な部類かなぁ、と思います。
デメリット
- タイトルだけの色変更がほしい
というのも、色の変更自邸は行なえますが、メモ全体であり、タイトル部分と本文部分を分けて色つけすることはできません。なんかそういう拡張とかってあったりするんですかね…?
- ボッシュートボタンが欲しい
ゴミ箱に捨てるボタンがワンクリックで実現されていない、というのが大きいです。それさえあればTodoistにより近くより使いやすいものになると思ってますが…
乗り換え元
Google Keppを使う前はTodoistを使っていました。4月くらいのことです。ただ、先にメリットに挙げたことやアプリの使い勝手、適切な通知方法などの点から乗り換えました。有料コンテンツによって全ての機能が解禁される、というのも気にかかっていました。
その中でも最大なのは、「時刻修正がうざすぎる」点ですかね。個人用ではUTC/GMT、学校や共有PCではJSTなので開くたびに時差を変更(修正かも)するか聞かれるのに参った、という点もあったのは確かです。
感想
では感想をば。2ヶ月くらい継続して使っていますが、ネットやブログ見てて気になったものを片っ端からラベル付けして追加し、後から一気に読む、という使い方が多いです。拡張による追加の時点で固定ピンとか付けられたら良かったんですけど、そういうところはやはり自分で書け、ということなんですかね…。
それと、今回初めてMarkdown記法というか、コレを使って書いたんですが、もしかしなくてもはてな記法より使いやすそうな気がしてきました。GitHubなんかのりどめは元から.mdになってたりするので、たまに使う身としては積極的に覚えていきたいなぁ。