変わり者の Vim 組み込みオペレーター達

Vim

本記事はVimアドベントカレンダー2022 その3の24日目の記事です。 オペレーターというのはVimの編集コマンドの一群で、よく自然言語における動詞に例えられる。つまり編集の種類を指し示すコマンドである。もう少し具体的に言うと、「消す」であったり「コピ…

multitarget-gn.vim を書きました

Vim

先に断っておくと、私としてはこれは邪道だと思っている。 GitHub - machakann/vim-multitarget-gn: Yet another gn command taking a count as a number of operation これ何 Vim の組み込みテキストオブジェクト gn の亜種である。 gn って何 :help gn を…

C++ 開発で LAPACK を使ったエルミート行列対角化をする

はじめに C++ 開発で LAPACK を使う場合のための覚書として記す。 ソースコードとコンパイルオプションを明示して、最低限動かすために必要な情報を残す。 また、REFERENCE BLAS と OpenBLAS の速度比較も行う。 BLAS と LAPACK BLAS は Basic Linear Algebr…

Vim script でレーベンシュタイン距離を計算する

Vim

Vim script にビットシフト演算子が導入されたそうです。 Vim script にビットシフト演算子が入りました。https://t.co/Rb5x9hNFqX— mattn (@mattn_jp) 2022年5月22日 というわけで、とりあえずレーベンシュタイン距離を計算してみました。 レーベンシュタイ…

雑記(20220522)

Vim

スレの趣旨にあってるのかあってないのかという感じだけど、これは嬉しい。 出典 www.reddit.com

Vim のモーションについて

Vim

Vim でカーソルを動かすためのコマンドの一部はモーションと呼ばれます。 これについての基本的な説明と組み込みのモーションコマンドについてはヘルプを読む(:help motion.txt)のが一番なので、この記事ではモーションとはなにかを簡単に解説した後、ユーザ…

羽田空港泊

2020/4/12 11:00(UTC+0800) @台北の寮 前の職場の寮の部屋をでる。二つ隣の部屋に住んでいるインド人の同僚が荷物を運ぶのを手伝ってくれる。やさしい。奥さんと幸せにね。 もともと、電車で移動の予定だったんだけど、雨降り&荷物が思った以上に重いので急…

Julia 言語で汎用一次元数値積分関数を書きました

二重指数関数型数値積分公式 を使った、非適応型の数値積分プログラムです。 GitHub - machakann/DoubleExponentialFormulas.jl: One-dimensional numerical integration using the double exponential formula 高橋・森によって提案された変数変換を施すこ…

Julia の Language server を Vim でうごかす その2

以前、こういう記事を書きました。 machakann.hatenablog.com しかし、準備が煩雑、必要なパッケージをグローバルにインストールしなければならないなど不満が多くありました。なので、これらの不満を解決するべく必要な設定やソースコードを一つの Vim plug…

また Vim のカラースキームを書いた

Vim

雪山かなんかの写真をみてなんかこんな感じ、と作りはじめました。 GitHub - machakann/vim-colorscheme-snowtrek: A light colorscheme for vim text editor かなり明るめです。いままでは、カラースキームを作る場合 'background' オプションが light の場…

Julia 言語の丸め関数

Julia 言語の丸め関数についてまとめました。 丸め関数 floor, ceil, trunc, round があります。 trunc(x) 原点 0 へ向かう方向に最も近い整数へと丸めます。 trunc(-1.1) == -1.0 trunc(-0.9) == -0.0 trunc( 0.9) == 0.0 trunc( 1.1) == 1.0 ceil(x) 小数…

肥大した $HOME/.julia を整理する

Julia の REPL を立ち上げる ] キーを押して Pkg REPL モードに入る gc と入力して Enter つまり、REPL を立ち上げて ]gc<Enter> 。簡単ですね! 必要なくなったバージョンのパッケージリポジトリのコピー (たぶん $HOME/.julia/packages/{package name}/ 以下にあ</enter>…

vim-sandwich で関数を消す

Vim

Vim の話です。 vim-sandwich というプラグインを以前書きまして、これを更新したよ、というのがこの記事の内容です。 これは何? ざっくりといえば、vim-surround クローンであり、おおよそ対応する機能を持っています。つまり、テキストオブジェクトを括弧…

vim-swap で関数の引数を並べ替える

Vim

Vim の話です。 vim-swap というプラグインを以前書きまして、これを更新したよ、というのがこの記事の内容です。 これは何? もっとも代表的な用途は、関数の引数のようなコンマで区切られたテキストの順番を入れ替える、というものです。例えば、次のよう…

Vim で Unicode 記号の入力補完をする

Julia 言語の特徴の一つとして広範な Unicode 記号を識別子として使える、というものがあります。その有用性について最初は懐疑的だったのですが、一度使ってしまうともう戻れなくなりました。過去のコードが mu だの theta だの phi だので埋め尽くされてい…

Julia の Language server を Vim でうごかす

※ --- 2020/1/21 追記 --- その2を書きました。 Julia の Language server を Vim でうごかす その2 - 書いたものなど ※ --- 2020/1/21 追記ここまで --- やっと、 LanguageServer.jl を動かせるようになったのでまとめます。将来はもっと簡単になると思い…

Julia で Grass-Fire algorithm を書く

なんの因果か最近は画像をぐりぐりしています。 画像の明るい点を検知してその重心位置を求める必要ができたのですが、考えてみるとなかなか難しい。いろいろ調べてみるとどうやらこういうのは BLOB (Binary Large OBject) detection というらしいです。厳密…

けものフレンズのタイトルロゴのアレ

Vim

vim-colorscheme-kemonofriends を書いたときに、けものフレンズのタイトルロゴを Vim バッファ上に出力するスクリプトを (README に載せるためだけに) 書きました。例のスクリーンショットを撮った後、当のスクリプトはどこに置いたのかわからなくなってし…

BLAS ライブラリの違いによる GAMESS のパフォーマンス比較

GAMESS に BLAS ライブラリとして mkl, OpenBLAS, ATLAS をリンクした場合のパフォーマンスを比較しました。 参考 : GAMESS をビルドする mkl 編 GAMESS をビルドする OpenBLAS 編 ATLAS もビルドしようとしてみたんですけど CPU throttling の停止ができな…

GAMESS をビルドする (OpenBLAS 編)

ふと思い立って GAMESS をビルドして遊んだので記録を残そうと思います。基本的には GAMESS Installation Instructions for Linux に従いつつ、ビルドがコケたところを修正してまとめました。 参考 → mkl 編 環境 OS : Ubuntu 18.04 64bit gcc : version 7.3…

GAMESS をビルドする (mkl 編)

ふと思い立って GAMESS をビルドして遊んだので記録を残そうと思います。基本的には GAMESS Installation Instructions for Linux に従いつつ、ビルドがコケたところを修正してまとめました。 参考 → OpenBLAS 編 環境 OS : Ubuntu 18.04 64bit gcc : versio…

[ 解決済 ] Windows で Julia 1.0 を使う時の注意

※2018/9/6 追記 IJulia v1.11.0 および ZMQ.jl v1.0.0 のリリースによって以下の問題は解決したようです。これで安心して windows でも Julia v1.0 へ移行できますね! Julia 言語のバージョン 1.0 がついにリリースされましたね 待ち望んでいたのでとてもう…

julia-vim に送った PR が取り込まれました

ちょっと前の話になりますが、 julia のドキュメントを vim 内に表示するための機能を追加する PR を julia-vim プラグインに送りました。 github.com machakann.hatenablog.com これが、ついに merge されてうれしいって話です。 使い方 まずは julia-vim …

Vim のターミナルウィンドウの文字色を設定する

Vim

はじめに Vim 8.1 がリリースされましたね。目玉機能の一つとしてターミナルウィンドウが挙げられています。 Vim 8.0 から存在していましたが、ついに実験的機能ではなくなった、ということでしょうか。 実はこのターミナルウィンドウの文字色は、設定によっ…

Vim の Julialang シンタックスハイライトについて

Vim の julialang 用シンタックスハイライト はなかなか控えめで渋くて好きです。 (Vim script 用のなんかは書いていると、ちょっと色が多すぎるな…と思ったりします。) ただ、括弧がハイライトされると視覚的に便利かなー、と思うので改造しようかと思って…

julia-vim に Pull request を送りました

Julia も Vim で書いてるんですけど、結構な頻度でドキュメントを見たくなります。 Vim script を書く時の :help コマンドに慣れすぎているのでこのくらいの気軽さで Julia のドキュメントをひければいいのに、と思っていました。ので、書きました。 github.…

vim-multiselect を書きました

Vim

Vim に複数選択があったら、という感じの実験、コンセプトモデルのようなものを書きました。正直、基本的に :substitute とか :global みたいなのをつかってしまうのでいまいち使えてないんですけど、なんか面白い使い方でも見つからないかなー、と考えてい…

Vim の TextYankPost イベント

Vim

Vim 8.0.1394 にてオートコマンドイベント TextYankPost が実装されました。 github.com ヤンクコマンドなどでレジスタが更新された際に処理をフックすることができます。名前に Yank とありますが、 d コマンドや c などもレジスタを更新するので同様に Tex…

アンドゥした位置をハイライトする Vim プラグインを書きました

Vim

Atom text editor の Vim エミュレータ、 vim-mode-plus に関する発表 を見ました。以前からアイデアの宝庫だと感心していましたが、もはや単なるエミュレータの域を超えているように思います。 スライドを見ていて、アンドゥした位置がハイライトされている…

UD デジタル教科書体

Vim

Windows update done. 楽しみにしていた UD デジタル教科書体に等幅があると知ったので喜び勇んで Vim の 'guifontwide' オプションに設定してみました。いい…。