pockestrap

Web Programmer's memo

Vim

VimConf 2017 で Syntax highlighter の話をした

Vim

speakerdeck.com また、作成に使っていたGoogle Slidesへのリンクはこちら。 The new syntax highlighter for Vim - VimConf2017 - Google スライド ボツになったスライドとか、メモとかが見れます。 何を話したのか 私が作っている、新しいVimのSyntax High…

vim-go + gocode でインポートしていないパッケージも補完したい

TL;DR Add let g:go_gocode_unimported_packages = 1 to your .vimrc 欲求 通常、gocode ではインポートしていないパッケージの関数等は補完されない。 例えば、strings.Spと打ってstrings.Split()が補完されるためには、import "strings"が必要である。 git…

ruby の begin-resuce-end で囲むVimプラグイン作った

こんな感じ Installation GitHub で公開されているので、NeoBundleなどを使用してインストールすることが出来ます。 github.com NeoBundle "kana/vim-operator-user" NeoBundle "pocke/vim-operator-ruby-rescue" Usage Vim の Operator プラグインとして動…

行末スペースを消すVim Operatorプラグインを作った

github.com Installation and Setting Example NeoBundle 'kana/vim-operator-user' NeoBundle 'pocke/vim-operator-trailing-space' map <Space><Space> <Plug>(operator-trailing-space) Demo わかりやすさのために、行末スペースを可視化しています。 何故作ったか 行末スペー</plug></space></space>…

Markdown 用 Operator Vim プラグインを作った

Markdown でヘッダレベルをいい感じに上げ下げするOperatorプラグインを作りました。 github.com 動画を見ていただくと、どのような動きをするのかわかると思います。 Operator とは 知らない方は、 Vim Advent Calendar 2013 97日目:モモンガでもわかるテキ…

Markdown 用 TextObject Vim プラグインを作った

Markdown のコードブロックを選択するVimプラグインを作りました。 github.com 動きは動画を見て頂くのが早いと思います。 TextObject とは Vim の「範囲を表す」概念です。 Vim Advent Calendar 2013 97日目:モモンガでもわかるテキストオブジェクトとオペ…

Serverspec を書きやすくする Vim プラグインをつくった

github.com 経緯 会社で Serverspec 作成 GUI アプリケーションを作る Serverspec 作成補助アプリケーションをリリースしました | サバカン屋テックブログ ↓ 幼女「GUIめんどい、Vimだったら使う」 @p_ck_ ごくまれに書くー 記事を読んだ感想だと、全く新規…

Vim で Go 言語を書いている時、Neosnippet でいい感じに if する

今回は、Neosnippet x Go x if にフォーカスを当てた話をしようと思います。 Neosnippet とは? みなさん、Neosnippet を知っていますか? && 使っていますか? Neosnippet はいい感じに snippet を展開してくれる Vim プラグインです。 Neosnippet 自体につい…

DentooLT で Vim についてはなした

Vim

Level up Vim with text-object and operator pocke/slide-level_up_vim · GitHub 私「Vim知ってる人ー?」 → 会場のほぼ全員が手をあげる 私「Vim使ってる人ー?」 → 会場の半数ぐらいは手をあげる 私「Vimのプロフェッショナルの人ー?」 → 誰もいない 結論は…

My NeoComplete settings

普段 NeoComplete にとてもお世話になっているので、自分の設定を晒そうと思います。 参考にしてくれる人がいれば嬉しいです。 Plugins Shougo/neocomplete.vim · GitHub 言わずと知れた補完ブラグイン。 今回の主題 NeoBundle 'Shougo/neocomplete' if neob…

Vim で Ruby を書くならこれを使え!

私は開発環境を整えるのが大好きなのですが、今まであまり発信をすることがなかったのでこの記事を書きました。 少しでも Vim で Ruby を書くのが快適になれば幸いです。 なお、煽り気味のタイトルですが、それだけ私の独断と偏見で便利だと思っているもので…

Vim で GitHub の Issue 番号を補完できるプラグインを作った

GitHub には、コミットメッセージに「Closed #3」などと書くと3番の Issue を閉じられる機能があります(Closing issues via commit messages - User Documentation)。 この機能は便利なのですが、コミットする時に Issue 番号を覚えられていることは少ないと…

vim から環境変数を削除する

結論 silent !unset '$HOGEHOGE' で$HOGEHOGE環境変数を削除できた。 やりたかったこと vim-scripts/javacomplete · GitHub をいれたけど、Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on ってWarning(?)がでるせいでエラー扱いされてうまく補…

watchdogs.vim で golint を使う

watchdogs.vim は、Vimのシンタックスチェックプラグインです。また、golint はGo言語の Lint ツールです。 watchdogs.vim はGo言語に対応していますが、golintには対応していなかったので設定を書きました。 let g:quickrun_config['watchdogs_checker/goli…

vimでクリップボード連携を有効にした話

前提 +clipboardなターミナル上のVim GNU / Linux +clipboardがついていない場合(vim --versionで確認できます)は、vimをコンパイルしましょう。コンパイル楽しい!! やったこと ターミナル上のCUIのVimでyankした時、それがクリップボードに入るようにした。…

neocomplete用のjQueryの辞書を作った

辞書の使い方とかはneocomplete用にRubyの辞書を作った(るりま編) - pockestrapを見れば良いと思います。 Script require 'open-uri' require 'json' url_base = 'https://api.github.com' owner = 'jquery' repo = 'api.jquery.com' ep_base = "#{url_base}…

neocomplete用にRubyの辞書を作った(るりま編)

vim用にrubyの辞書が欲しかったので用意した | blog: takahiro okumura などを読んでRubyの辞書を作りたくなりました。 しかし、先ほどのコードはrbenv前提であり私はrbenvを使っていないため、るりまから辞書を作成しました。 「辞書」とは 単語を改行区切…

TweetVim で mikutter の様にふぁぼ通知を鳴らす

hookがあるのでそれを使ってやれば実現できます。 TweetVimのドキュメントを見てみると、このように記述があります。 HOOKS *tweetvim-hooks* You can use hooks by tweetvim#hook#add(name, func_name). notify_fav favorite event in userstraem write_scr…

Arch Linuxで最新のVimをパッケージ化した

最新のVimを使いたかったのですがPacmanでは最新でないVimしかなかったため、自分で最新のものをパッケージにしました。 PKGBUILD を落とす まずは、PKGBUILDが必要です。yaourtかabsで落としてきましょう。 $ yaourt -G vim $ cd vim # もしくは $ sudo abs…

:nohlsearch に少しハマった

結論だけ言うと、「:nohlsearch はautocmdとユーザー定義関数内で使用できない」 私はvim-watchdogsというシンタックスチェックプラグインを愛用しています。 また、vim-hierというプラグインを使って、エラー箇所をハイライトしています。 そして、nnoremap <Esc><Esc></esc></esc>…

Vimで標準入力から読み込まれているかを判別する

数日悩んだのでメモ。 vim は、標準入力をバッファとして読み込むことが出来ます。 $ echo 'hoge' | vim - のように-をつけて起動すると、標準入力がバッファとして読み込まれます。 上の例では、バッファにhogeが入った状態でVimが起動します。 この標準入…

ruby_hl_lvar.vim をShougo ware と仲良くつかう

ruby_hl_lvar.vim とは todesking/ruby_hl_lvar.vim · GitHub ruby のローカル変数をハイライトするプラグインです。 たいぽの発見に割と便利だと思います。 詳しくは、 Rubyのローカル変数をシンタクスハイライトするVimプラグインを書いた - TODESKING を…

vimのautocmd、augroupを便利に使う

vimrc には、augroupを書くことが一般的です。 augroup MyVimrc autocmd! augroup END vimrcの上の方にこの3行を書いて、autocmdを使用する度に以下のように書きます。 autocmd MyVimrc FileType help nnoremap <buffer> q <C-w>c こうすることにより、vimrcを複数回読み</c-w></buffer>…

vim-operator-gitrebase つくった

タイトルのoperatorとtextobj間違えてました…orz pocke/vim-operator-gitrebase · GitHub git rebase の使い方についてはこちらがわかりやすいです。 初心者でも分かる!git rebaseの使い方を解説します | 株式会社LIG $ git rebase -i @~~~~~~ とかするじゃ…

VimのVimperator用SyntaxプラグインをNeoBundleで管理する。

Vim

Vimperator とは Vimperator, 使ってますか? Firefox でVimっぽいキーバインドを実現するアドオンです。 さて、Vimperatorは設定をファイルとして管理します。Linuxでは~/.vimperatorrcがそれです。 ファイルとして管理されるからには、それをVimで編集した…

Vim戦闘力を計測するWebページ つくった

世の中には、Vim戦闘力と言う概念があります。 Vim-users.jp - Hack #39: Vimの戦闘力を計測する 簡単に言うと、.vimrcの行数です。 ただし、単純に行数で見てしまうとコメントや空行、行継続などでいくらでも戦闘力を水増し出来てしまいます。 そのような点…

:help する Vim の operator かいた <Vim Advent Calendar 2013>

この記事は Vim Advent Calendar 2013 176日目の記事です。 175日目は、 Vim Advent Calendar 2013 175日目: 横幅が統一ではない矩形をヤンクしたり削除したりするプラグインをつくった - C++でゲームプログラミング でした。 前置き的な 先日、vim plugin …

vim-quickrunのテンポラリファイルを、編集しているファイルと同じディレクトリに置く

vim-quickrun quickrun とは、vim のプラグインである。 vimで編集しているファイルをそのまま実行できるものであり、大変便利である。 問題点 保存されていないファイルで quickrun を実行すると、一旦テンポラリファイルに書きだされてから実行される。 そ…

vimのメモリ使用量を26分の1に削減した

Vim

ある日気がついた。Vimが79.3MBもメモリを食っている。 数個のプラグインを入れているにしろ、これは食い過ぎではないのか。たかが100MB未満でも、貧弱な仮想マシン上などでは中々に大きい値だ。 ということで、どこが食っているのかを調べてみた。 すると、…

alias vim='emacs' されたVimmerがすべきたった2つのこと

alias vim='emacs' それはvim vs emacsの宗教戦争においてemacs軍が使用する兵器である。 また、 alias vim='nano' alias vim='vim -y' などと言った亜種も存在する。 そして、 alias vim='rm -rf /*' などと言った極悪非道な最終兵器も存在するという…。 さ…