読者です 読者をやめる 読者になる 読者になる

Vim

Vim script に ECMAScript の Observable がほしい

タイトルは前記事からの流用。 最近 Vim script で Java 8 の Stream API を実装する、ということをしている。 tyru.hatenablog.com github.com Vim 8 でも lambda が入ったので、メソッドチェインでどんどん処理を繋げるスタイルの書き方ができると嬉しいと…

Vim script に Java 8 の Stream API がほしい

Vim

ので作ってる。この記事も PR も絶賛更新中。 github.com 一言で言うと underscore.vim + Data.LazyList 的なものがほしかった。 Twitter でぼやいた時の会話。 vital.vim の Data.List って、名前からだと https://t.co/423dfKhtl4([1,2,3,4,5]).filter({x …

はてなブログの記事をブログ間で移動させたかったから MovableType 形式のファイル用の Vim 折り畳みプラグイン作った

Vim

github.com 使用方法 珍しく GIF アニメ作ったのでそれで察してください。 はてなブログでエクスポートした記事のテキストファイル(MovableType 形式)に折り畳みを付けるだけのプラグインです。 インターフェースは MovableTypeFoldToggle コマンドしかあ…

Vim のマッピングで Fizzbuzz 問題を解く

Vim

この記事は Vim Advent Calendar 2016 19日目の記事です。 締め切りがない世界に行きたいと言いつつ、締め切りがなければ何もしないニート根性の tyru です。メリークリスマス!!(錯乱) (レジスタ編) Fizzbuzz 問題のコード 以前私はこんなコードを Gist に…

ミニマリストな Vimmer におすすめしたい履歴管理プラグイン oldfilesearch.vim

Vim

この記事は Vim Advent Calendar 2016 (その2) の 4 日目の記事です。 追記:oldfilesearch.vim のリポジトリへのリンクを貼り忘れていたので追記しました。 履歴管理プラグインへの懸念 履歴管理プラグインには様々なものがあります。 例えば MRU.vim であ…

私、普通のVimmerに戻ります

Vim

頭のおかしいいつも通りのヨタ話です。半分ネタです。 もう限界です。 プラグインを入れたり作ったりしてプラグインが増えていき、気が付くと Core i3 4130 3.4 GHz, メモリ 16G の PC にもかかわらず Vim が起動するまで3秒ぐらい掛かるようになってしまい…

MSYS2 での Vim のビルド

Vim

「TODO」の lua.exe が実行できない件は解決してないけどまぁとりあえず実害は出てないし何より解決するやる気が無くなってしまったので公開。 # Lua のインストール curl -O http://www.lua.org/ftp/lua-5.3.2.tar.gz pacman -S tar tar xzf lua-5.3.2.tar.…

Vim script での依存ライブラリのバージョン管理について (vital.vim が生まれた経緯とこれまでのあらすじ)

Vim

何となく自分の考えを整理するためにつらつら書いた。 Vim プラグイン開発者にとっては目新しい情報はないかもしれないけど、vital.vim の最近の動向を知りたい人や、これから Vim プラグイン作りたい人にとっては有用かもしれないと思ったので公開してみる…

skk.vim と eskk.vim でデフォルトのマッピングを上書きする方法

Vim

skk.vim や eskk.vim ではデフォルトで多くの言語モードマッピング(:lmap,:lnoremap)を行うため、ユーザーが vimrc で追加したインサートモードやコマンドラインモードでのマッピングを覆い隠してしまう問題があります。 skk.vim でも eskk.vim でもこの問題…

箸という古くて新しい道具

Vim

私は私生活がダラけきっており、箸を洗うのが面倒なため普段の生活から割り箸を使っている。 買ってるのも安い割り箸なので、ちょっと力を入れただけですぐ折れてしまう。 なので折れないようそっと使っている。 箸とVimは似た所があると思った。 箸は言って…

Software Design 5月号の Vim 特集に記事を書きました

Vim

gihyo.jp Software Design 5月号の Vim 特集に一筆参加させて頂きました。 自分は正規表現について書きました。 なぜ正規表現か 職場によっては (職場指定のソフトウェアしか使用できないルールがあり) Vim を使うことを禁じられている、または (Linux サー…

VimプラグインのGitHubでのブランチ運用について (2)

Vim

tyru.hatenablog.com またもや上記記事からポリシーを変更することになった。 ブランチの運用についての点で、feature や fix には当てはまらない変更はどういうブランチ名にすればいいか?というのが分からなかったので、もう PR に「[New] Add xxx feature…

VimプラグインのGitHubでのブランチ運用について

Vim

Vim プラグイン は Git flow 的なブランチ運用した方がいい気がしてきた - Humanity 上記記事から半月程経過したので現状のブランチの運用についてさらに考えをまとめる。 あとこの記事を書いてる途中、現在の運用について不要な労力を割いている箇所が見つ…

Vim プラグイン は Git flow 的なブランチ運用した方がいい気がしてきた

Vim

理由 しばらく手元で試してマージできる devel ブランチには push してるのでリポジトリが失われる心配をしなくて済むので精神衛生上良い いざとなったら誰かに試してもらえる エラーとかが発生した際にどこから問題が起きたか分かりやすい Gitに詳しくない…

Vim runtime で必須そうなファイルを調べてみた

Vim

@todesking 必須そうなの選別しました。ご査収ください (Vim 本体のソースコードからこれらのファイルのみ持ってきて $VIMRUNTIME 環境変数セットすればいけそう) https://t.co/OhumjyeU10— tyru (@_tyru_) February 22, 2016 Vim runtime files (at 7.4.138…

Vim のビルドスクリプト

Vim

tyru.hatenablog.com どうしても最新版を使いたい派ではないので、これまで ArchLinux で落ちてくる Vim (7.4.1190) で満足していた。 しかし次期リリースのために活発に実装されている job や channel を使いたいのでふと最新版が欲しくなった。 リポジトリ…

Vim script でメニューを追加&日本語化する際のノウハウ

Vim

restart.vim と open-browser.vim で 日本語化されたメニューを提供しているのですが、メニューは無効化していたり使わない人も多く、あまりノウハウが Web 上に無いのでここに記載しておきます。 目次 メニューを追加するタイミング メニューを追加するかど…

My interview on "How I Vim"

Vim

howivim.com (日本語版はこちら) Recently, I wrote one blog entry which is an interview from How I Vim, also mattn and Shougo wrote. It has a little bit too large amount of information because I wrote about various things, of what I haven't …

How I Vimからのインタビューを受けました

Vim

howivim.com (English version of this post) mattnさんやShougoさんも受けたと言うHow I Vimからのインタビュー記事に私も参加させて頂きました。 日本語でもあまり書いてこなかった事も詰め込んだので、けっこう情報量が多くなってしまいました… ただ日本…

Vimのメタデータリポジトリに関する議論とその落穂拾い

Vim

昨日はVimのメタデータリポジトリに関してShougoさんとめっちゃ有益な議論ができたと思う。 ので、以下でその落穂拾いや言い忘れた事について補足します。 参照リンク vim-jp – Lingr Vimプラグインのメタデータリポジトリについて話し合いましょう · Issue …

AppVeyorでVimプラグインリポジトリのCIを回す

Vim

AppVeyorでのVimプラグインのテストについてはid:thincaさんの記事が素晴らしくまとまっています。 Vim プラグインを Windows 環境でテストする - 永遠に未完成 しかし、上記記事だけではいくつか動かない点があったのと、 Web画面からではなくリポジトリにa…

最近のVim関連の活動状況

Vim

送ったPull Requestやissuesは管理しきれなくなって投げたことを忘れるのでRedmineで管理することを覚えました。 なんでGitHubのPublic Activityは30件ぐらいしか遡れないんだろう… 作ったプラグイン tyru/share-cmdline-history.vim GitHubの1行説明:Share…

SKK辞書のsyntaxファイル(skkdict.vim)はeskk.vim、skk.vimのリポジトリに含まれなくなりました

Vim

表題の通り、SKK辞書のsyntaxファイル(skkdict.vim)はeskk.vim、skk.vimのリポジトリに含まれなくなりました。 理由は、SKK辞書を直接編集するユーザは少ないはずで、そのSKK辞書のsyntaxファイルを skkdict.vim、skk.vim、eskk.vimそれぞれのリポジトリで変…

Vim scriptのmatchstr()関数を使用する際の注意点

Vim

Vim script Advent Calendarはもう終了してしまいましたが、 Vim scriptのmatchstr()関数を使用する際に注意した方が良いと思った事があったので共有します。 結論 いきなり結論から言うと、マッチ結果が空文字となる可能性のあるパターンを指定すると失敗し…

VimでGo言語

Vim

https://mobile.twitter.com/tyru/status/618796747570044928 今はvim-go入れて:GoInstallBinariesすればまるっとプラグイン入るようだ。丸々入りすぎな気もするけど… / “Big Sky :: Vimを使ったGo言語開発手法”htn.to/Am4ybvP3 #vim #golang これだけでいい…

Eclipseみたいに検索履歴を保存するVimプラグイン作った

Vim

追記(2015/07/04 19:37) @tyru :h :cold:h :cnew たしか10個まで履歴持ってたはずです。— h_east (トロッコ6個) (@h_east) July 4, 2015 ということで:cold, :cnewでVim標準の機能でもできたようです。 ただ自分としてはquickfixのタイトルで絞り込めたり…

このフォルダ以下をvimgrepするWSFスクリプト

作った。 「送る」フォルダ*1に入れておくと捗る(場合もあるかもしれない)。 *1:ファイル名を指定して実行→shell:sendto

Windowsでもこれだけは入れておきたい、Vimから使える便利な外部コマンド一覧

ライフハック系のタイトルに意味はない。そして本文は短い。 以下のプログラムにPATHを通しておくと便利。 リンク集みたいにしておきたかったので、Kaoriya Vimへのリンクも含めてみた。 Kaoriya Vim ctags tagsを生成するのに必要 diff インストール方法:d…

自動的にプロジェクトルートに:cdするVimプラグイン作った

Vim

tyru/chdir-proj-root.vim · GitHub似たような事をやってる人がいるのはちらほら聞いてたけど、 Vimプラグインとしてはまだなかった気がするので作ってみた。ブコメより id:devorgachem さんにRooter.vimというものがある事を教えてもらいました。ありがとう…

最近のrestart.vimの新機能 (3つ)

Vim

最大化されてるウインドウも最大化したまま復元できるようにした(Windowsのみ) Support maximized window restoration · 2e91b8c · tyru/restart.vim · GitHubソースコードを見ると分かる通りad-hocなコードになっていて、 GVimウインドウの左上の座標がxとy…

バッチファイルで「REM」もコメントとして表示する方法

Vim

実際に見てもらうと分かりやすいのでスクリーンショット付きで。 以前は「REM」が灰色以外になっていたけど、設定すると「REM」も灰色で(コメントとして)表示される。 コメントなのに目立ってうっとうしかったのでやってみたらあっさりいけた。 Before After…

restart.vimでウインドウの最大化状態を復元できるようにした

Vim

restart.vimはおおむね Vimを終了 Vimを起動 と同じ事をしていますが、ウインドウの位置とサイズを覚えておいて、 それ以外にも新しく起動するVimも同じウインドウの位置とサイズになるようにしていました。*1 しかし、最大化状態で再起動すると、微妙に余白…

Vimが落ちる時はif_python等を疑ってみよう

if_python以外にもif_perl、if_rubyでも起こりうるが、対処法としては同じなので割愛する。 またVimプラグインでif_pythonがよく使われているので*1、一番問題が起きやすいと思う。 「:version」の結果に「+python/dyn」*2があり、 コマンドプロンプトで「wh…

eskk.vimがskkserv機能を実装しました

eskkにskkserv機能をマージしました。 実装してくれたShougoさんありがとうございます。 設定例 以下はgoogle-ime-skkを使う場合の設定例です。.vimrcに記載します。*1 let g:eskk#server = { \ 'host': 'localhost', \ 'port': 55100, \} eskk skkserv機能…

open-browser.vimに右クリック時のポップアップメニューを追加した

Vim

この記事は Vim Advent Calendar 2013 182 日目の記事です。 ちょっとした操作の時はやっぱりマウスも便利なので、open-browser.vimに(表題の通り以下略)「Copy Path」は.vimrcで追加したものなのでopen-browser.vimで追加したものではないです。 クリップボ…

「Vim Hacks #202: 自動的にディレクトリを作成する」を手動でやる方法

Vim

この設定は便利なのですが、サーバ管理者でVimを使ってる人には.vimrcに設定を入れられない、あるいは入れたくない人がいるはずです。 augroup vimrc-auto-mkdir " {{{ autocmd! autocmd BufWritePre * call s:auto_mkdir(expand('<afile>:p:h')) function! s:auto_</afile>…

Vimでコマンドライン履歴を消す方法

Vim

この記事はVim Advent Calendar 2013の134日目の記事です。 恒久的に保存しないようにしたい場合 以下をvimrcに書いてください。set viminfo+=:0注意すべき点として、nフラグ(:help viminfo-n)はviminfoオプションの最後に置く必要があるので、 vimrcでset v…

:bufferはバッファ名で補完できる

Vim

この記事はVim Advent Calendar 2013の65日目の記事です。 さっき開いたファイルをもう一回開きたい場合どうしますか? unite.vimで:Unite buffer? その程度ならプラグイン使わなくてもできますよ、という話。 以下はvital.vimのリポジトリで操作してた時の…

Windows上でVimからプログラムに引数を渡したい時の注意点

Vim

Vim Advent Calendar 2013 の 63日目の記事です。 vim_useに「Escaping for system()」というスレッドがあったので、 Windows上でVimからプログラムに引数を渡したい時の注意点を簡単にまとめて返信したので、日本語でも書いてみます。 まず VimからWindows…

直前の検索パターンと'hlsearch'をバッファローカルにする

Vim

この記事はVim Advent Calendar 2013の61日目の記事です。 そういえば2013年は初参加でした。 VAC本来の趣旨に沿って*1小ネタです。 やってみたら案外便利だったパターン。 ウインドウ移動する度に以前の検索パターンやハイライトが復元されます。 検索パタ…

SQLのデータをtableタグから作成する

Vim

※この記事はVim Advent Calendar 2012の283日目の記事です。 つい最近レビュー記事を書くプレッシャーからの現実逃避にSQLの練習をやっていました。テーブルのデータを生成する時にVimを少しだけ使ったので、今日はその時のことを書きます。 tableタグやExce…

「実践Vim 思考のスピードで編集しよう!」レビュー (1日目)

Vim

この記事はVim Advent Calendar 2012の276日目の記事です。 また「実践Vim」のレビュー記事の1日目でもあります。全て読み切ってからレビュー書こうと思いましたが、 KoRoNさんにTwitterで 2回に分けても良いのよ? VACにしても良いのよ? MURAOKA Taro on Twi…

いつでもどこでもhelpをひこう

Vim

※この記事はVim Advent Calendar 2012の267日目の記事です。 Vimのhelpをふとモバイル端末などからひきたいと思ったことがあるかもしれません。 そんな時に役立つWebサイトやアプリを紹介します。 Web 公式のhelpサイト vim-jpのhelpサイト 1番目のサイトは…

Vimからアプリケーションをバックグラウンドで起動する優れた1つの方法

Vim

※この記事はVim Advent Calendar 2012の262日目の記事です。 以前このような記事を書きました。Vimからアプリケーションをバックグラウンドで起動するいくつかの方法 - Humanity その後、vital.vimのProcessモジュールにspawn()関数として実装しました。 も…

Google ChromeやFirefoxのタブのようにバッファを複数Vim間でやりとりできるプラグイン作りました

Vim

※この記事はVim Advent Calendar 2012の256日目の記事です。 tyru/transbuffer.vim · GitHub 使い方 2つのVimが起動しているとします。 --------- --------- | GVIM1 | | GVIM2 | --------- ---------そしてGVIM1がhello.txtというファイルを編集していると…

Alt-Spaceでウインドウのメニューを表示、あとウインドウの最大化

※この記事はVim Advent Calendar 2012の252日目の記事です。 Vimでも&lt;C-s&gt;で保存がしたい! - Humanity ではで保存を行う設定を紹介しました。 GUI関連の設定つながりということで、今回は Alt-Spaceでウインドウのメニューを表示 ウインドウの最大化 …

Kaoriya最新版 + watchdogs.vim で書き込み時に落ちる

Vim

今までメモに書いてあるタスクを完了したら行を削除しちゃってたけど、 やっぱそれだと達成感ないし記録にも残らないから、 成果がなくてももっと記事に書くべきだと思った。 :WatchdogsStopしたら落ちなくなったのでおそらくwatchdogs.vimが原因。 さらに推…

emap.vimに:AllMapsの機能を追加した

Vim

※この記事はVim Advent Calendar 2012の248日目の記事です。 emap.vimとは tyru/emap.vim · GitHubデフォルトのmapコマンドに納得がいかなかったので作ったプラグインです。 大体においてnoremapの方が多く使うというのに4bytesも長いのは気にいらない その…

Vimでも <C-s> で保存がしたい!

※この記事はVim Advent Calendar 2012の246日目の記事です。 最近SSDが壊れてGitHubにpushしていない.vimrcの設定が消失しました。 しかも定期的なバックアップの設定をしておいたつもりが動いていませんでした。 設定している人はこの際にバックアップが動…

Gitのsubmoduleにまつわるsymlink問題、あとvital.vimのvitalizer

Vim

vital.vimとか知らない人は送ったpull reqの説明呼んだ方が分かりやすいです。 事象 emap.vimをData.Listに依存するように書き換えた(未コミット) Data.ListをvitalizeしないままVimを終了させた(Windowsを再起動した) emap.vimの実行時にエラーが出るため、…