タグ

Vimに関するnyangryのブックマーク (110)

  • Vimの移動が遅い原因を探ってみた

    年始からVimに入信して3ヶ月が経ちました。 インストールしたプラグインの数も増えてきましたが、Vimの動きが遅くなってきたので原因を調べてみました。 Table of Contents 経緯 久しぶりに素のVimを立ち上げて編集したとき、カーソル移動やスクロールのあまりの速さに愕然としました。 Vimmerを目指した理由の1つに『Vimの軽快さ』がありましたので、そのままにはしておけません。 以下のページを参考にして、何がボトルネックになっているかを調べることにしました。 結論から先に言うと、powerlineが遅さの原因になっていたようです。 測定方法 以下の手順でプロファイリング結果を取得します。 "ログ出力先とプロファイリング対象を決める :profile start profile.log :profile func * :profile file * ・・・測定したい動作を実施

    Vimの移動が遅い原因を探ってみた
    nyangry
    nyangry 2019/09/09
  • vimでやを使って数値をインクリメントする時に陥りがちな罠 - Guyon Diary

    いや罠でもなんでもないんですが、私が勝手に罠に引っかかっただけのでメモ。 カーソルの下または後の数をインクリメントしたい場合には、やで行う事ができますが、0埋めの数値をインクリメントする時に罠が待っています。 001 をでインクリメントすると 002 になりますが、 007 をでインクリメントすると 010 になります。察しの早い方はもうお分かりだと思いますが、0で始まる数値は8進数としてvimが認識してくれて次の数値である「010」にしてくれるているんですね。DBとかデータファイルでは0埋めで「0001」連番を振る場合がよくあるありますし、10進数で扱いたい!。私は8進数表記はあまり使いません・・・(バイナリアンとは遠い存在だなぁ) 設定くらいあるだろと思って、ヘルプったらありました。 :h nrformats ヘルプから引用です。 'nrformats' 'nf' 文字列 (既定では

    vimでやを使って数値をインクリメントする時に陥りがちな罠 - Guyon Diary
    nyangry
    nyangry 2018/04/07
  • Vim の問題を調査したときの記録 - 永遠に未完成

    先日私の環境で起きた Vim に関する問題を調査した際の記録。一例なので汎用的に使える手法ではないけど、こういう感じのことをしているよというのを書き留めておきます。 結果的に無駄だった工程も書いています。1 道で調査が進むことの方が珍しく、だいたい回り道します。 問題 「cgn で検索のマッチ対象を別のキーワードに置き換えたあと . で繰り返すと、Bell が発生する。」 cgn は c + gn で、gn は検索にマッチした範囲です。つまり検索にマッチした内容を c で書き換え、. で次のマッチ対象にも同様の変更を行います。1 つずつ確認しながら置換したい場合などによく使われる操作です。 問題について Vim では不正な操作をした場合など様々な場面で警告としてベルを鳴らします。 例えばノーマルモードでそれ以上移動できない方向に移動しようとした場合など、割と些細なことでも鳴ったりします。

    Vim の問題を調査したときの記録 - 永遠に未完成
    nyangry
    nyangry 2018/02/08
  • ファイル名をパイプで出力してvimで開く方法 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    ファイル名をパイプで出力してvimで開く方法 - Qiita
    nyangry
    nyangry 2018/01/15
    xargs
  • Vimがちょっと便利になる5つ起動オプション(おまけあり) - Qiita

    もしかしたらあなたの役に立つかもな5つの起動オプション Vimには起動オプションにも様々なものがあります。 詳しくはhelpを見れば書いてありますが、 私がたまに使ったりするものをいくつか簡単にご紹介します。 1.行番号を指定して開く 「+{num}」 test.rb の45行目を指定して開く場合

    Vimがちょっと便利になる5つ起動オプション(おまけあり) - Qiita
    nyangry
    nyangry 2018/01/15
  • GitHub - mechatroner/rainbow_csv: 🌈Rainbow CSV - Vim plugin: Highlight columns in CSV and TSV files and run queries in SQL-like language

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - mechatroner/rainbow_csv: 🌈Rainbow CSV - Vim plugin: Highlight columns in CSV and TSV files and run queries in SQL-like language
    nyangry
    nyangry 2017/12/20
  • vimで連番の作成 - Qiita

    function! g:set_num() "{{{ " ******************************************************************************** " 連番の作成 " カーソル以降の数字を、前の数字にひとつ加算したものにする ( マイナスは、考慮しない ) " ******************************************************************************** " " カーソル位置の取得 let pos = getpos(".") let lnum = pos[1] let col = pos[2] - 1 "===================== " 前の行 "===================== let lstr = getline(lnum-1

    vimで連番の作成 - Qiita
    nyangry
    nyangry 2017/06/29
  • Vimユーザーのためのキーボードカバーが爆誕 | ソフトアンテナ

    圧倒的な操作効率の高さを誇るテキストエディタVim。開発者から多くの人気を集めていますが独特のキーバインドを採用し習得するのが大変なエディタとしても知られています。 日紹介するEditor KeysのVim Keyboard Coverは、この問題を解決するために作られたキーボードカバーです(The Next Web)。MacBook ProやAirに対応したシリコン製のキーボードカバーで、Vimでそれぞれのキーにどのような機能が割り当てられているのか一目で確認することができるよう工夫されています。 膨大な量の情報は、文字としてだけではなく色によってグループ化され分類されていて、また通常のキーボードカバーのように、キーボードを埃や水滴から保護する機能も提供します。MacBook Pro Retina用のもののほか、MacBook Air、 MacBook Pro with TouchBa

    Vimユーザーのためのキーボードカバーが爆誕 | ソフトアンテナ
    nyangry
    nyangry 2017/06/02
  • Vimで行頭に行番号を挿入する方法いくつか - 座敷牢日誌

    :set number で行番号を表示するのではなく、文の行頭に行番号を挿入したいことが ある。 いろいろやりようがある。知ってるのを整理してみた。 外部コマンドでフィルタする (cat, awk) 外部コマンドでフィルタリングするアプローチは、行番号の挿入に限らず役立つことがけっ こうある。 vimで行頭に行番号を付加 - 備忘録 beta 普段は cat コマンドでやっている。 :%!cat -n 開始番号をコントロールしにくいところがちょっと使いづらい。 awk でも出来る。見栄えはこっちのほうが調整しやすいかも。次のコマンドで右詰め・ スペース埋めした行番号が挿入される。 :%!awk "{ print sprintf(\"\%3s\", NR) \":\", $0 }" 開始する行番号を調整することも一応できる。次のようにすると、「31:」から出力され る。が、こんな使い方はし

    Vimで行頭に行番号を挿入する方法いくつか - 座敷牢日誌
    nyangry
    nyangry 2017/04/17
  • Vimのコマンドラインモード(コロンのやつ)のときにカーソル下にある単語を入力する - Qiita

    vimで:を入力するとコマンドラインモードが始まりますが、このときテキスト中の単語をコマンドラインに持ってくる方法です。 :のあとの入力待ちになっているときに<Ctrl-r><Ctrl-w>と入力してください。 カーソル下にある単語がコマンドラインに入力されます。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    Vimのコマンドラインモード(コロンのやつ)のときにカーソル下にある単語を入力する - Qiita
    nyangry
    nyangry 2017/02/15
  • 【入門】Vimで高速で移動~プラグインなしでの移動まとめ~ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    【入門】Vimで高速で移動~プラグインなしでの移動まとめ~ - Qiita
    nyangry
    nyangry 2017/01/17
  • unite.vimより高速なdenite.nvimを使う - Qiita

    Denite Denite.nvim is a dark powered Neovim unite all interfaces. It resolves unite.vim problems. It is 10 times faster than unite.vim. 暗黒の力を手に入れた云々。早い パッと動かしたい人は操作方法の項まで見れば動かせる文章構成にしています。 こんな感じ インストール python3を持ってないといけません。 pyenvとpyenv-virtualenvを使っている場合 # pyenv install 3.5.2 # 2016/9/22 update 後述するcpsmを利用する場合動的リンクを含む以下の方法でインストールしてください。 env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3

    unite.vimより高速なdenite.nvimを使う - Qiita
  • Rubyのローカル変数をシンタクスハイライトするVimプラグインを書いた - TODESKING

    Rubyはローカル変数への参照と無引数のメソッド呼び出しを同じ記法で書けるので、コードを読むときに混乱したりtypoでNoMethodErrorを出してがっかりすることが多々あります。 幸いなことにこれらは静的に解析することができるので、ローカル変数への参照を色付けするVimプラグインを書いた。 Github/ruby_hl_lvar.vim すごく便利な気がする!!!!!!! Rubyインタフェース(>=1.9)が有効になったVimが必要なのでご注意ください。MacVim 7.4 KaoriYa 20140107で動作確認しました。 しくみ Ruby1.9以降に標準添付されているripperというライブラリで、Rubyの構文解析をしてローカル変数への参照を取り出しています。 require 'ripper' Ripper.sexp(<<EOS) a = 10 b = 20 c = a +

    Rubyのローカル変数をシンタクスハイライトするVimプラグインを書いた - TODESKING
    nyangry
    nyangry 2016/10/28
  • Vimの便利な画面分割&タブページと、それを更に便利にする方法 - Qiita

    この記事はVim Advent Calendar 2013 : ATNDの99日目の記事です。 画面分割・タブページのススメ みなさん、分割してますか? みなさん、タブページ使ってますか? 僕はどちらも大好きです。 サンプルを見ながら写経する TODOやメモを見ながら編集 関数の定義元などを見ながら編集 編集目的に合わせてタブを分ける などなど。 ものぐさな僕は、コードを書くときはガシガシ分割したりしながらコードを書いています。 これらの機能は当然設定やプラグインの導入などをしなくても使えますが自分はsキーをprefixとしたキーマッピングをしています。 元は<C-w>の代わりにsを使っていただけですが、タブウィンドウ関連やバッファ関連にも使うようにしたことで、格段に便利になりました。自分の設定例を合わせて掲載するので、良ければ参考にしてください。 各種機能とマッピング ウィンドウを分割す

    Vimの便利な画面分割&タブページと、それを更に便利にする方法 - Qiita
    nyangry
    nyangry 2016/10/12
  • 'cursorline' を必要な時にだけ有効にする - 永遠に未完成

    問題 Vim には 'cursorline' というオプションがある。これを有効にすると、現在カーソルがある行がハイライト表示される。カーソルの位置を見失いにくくなるので便利なオプションだ。 しかし、デメリットがないわけではない。 微妙に重い。 背景色や一部の色が上書きされるので、カーソルのある行の背景色が見えなくなる。例えば、コメント内の TODO や 'list' で表示される文字など。 そもそも 'cursorline' は常に必要だろうか。編集中にカーソルを見失うことはそうそうないはず。見失うのはちょっと席を外したり別の作業に移って、戻ってきた時だ。必要な時だけ有効にすることはできないだろうか。 解決方法 以下のような設定を行うと、しばらく手を離した時だけ 'cursorline' が有効になる。 augroup vimrc-auto-cursorline autocmd! aut

    'cursorline' を必要な時にだけ有効にする - 永遠に未完成
    nyangry
    nyangry 2016/09/28
  • vimrc のどこが重いのかを調べるもう1つの方法 - 永遠に未完成

    何やら mattn さんがプラグインを書いたみたい。 Big Sky :: vimrcのどこが重いのかを調べられるプラグイン書いた。 どうやらvimrcの各行にreltimeで時間差を取るコードを埋め込んで実行することで計測している模様。 ところでVimには+profileって機能がある。これを使うとVim scriptの各行が何回実行されてどれくらい時間がかかったのか調べられる。+profileはHuge版Vimでのみ使える。 早速やってみる vimrc を計測したいのならコマンドラインから以下のようにする。 $ vim --cmd "profile start profile.txt" --cmd "profile file $HOME/.vimrc" +q && vim profile.txtprofile.txt に結果を吐き出すように設定してプロファイリングを開始し、.vimrc

    vimrc のどこが重いのかを調べるもう1つの方法 - 永遠に未完成
    nyangry
    nyangry 2016/09/28
  • Vim 8.0 リリース! - プログラムモグモグ

    Vim 8.0 released! Vim 8.0が先ほどリリースされました。10年ぶりのVimのメジャーバージョンアップです。 Vimのバージョンをcronで毎日上げ続け、最新のパッチを確認し続ける日々を送ってきました。そして、今日も夜11時のcronでバージョンが上がりました。新しいメジャーバージョン、8.0でした。 ここ一年はVimにとって様々な重要な機能が入りました。JSONエンコーダーとパーサー、パッケージ機構、channelとjob、タイマー、ラムダ式など、プラグイン製作者にとって大事な機能ばかりです。今後、より高度なプラグインがでてくることでしょう。これらの機能に対する日人の貢献は素晴らしいものです。 リポジトリをGoogle codeからGithubに移動するという重要な決定も行われました。この決定の過程にも、vim-jpの皆さんが深く関わっています。私は傍から応援するこ

    Vim 8.0 リリース! - プログラムモグモグ
    nyangry
    nyangry 2016/09/13
  • ag(The Silver Searcher)で検索しpecoで更に絞り込みvimで該当行を開く - Qiita

    function agvim () { vim $(ag $@ | peco --query "$LBUFFER" | awk -F : '{print "-c " $2 " " $1}') }

    ag(The Silver Searcher)で検索しpecoで更に絞り込みvimで該当行を開く - Qiita
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    nyangry
    nyangry 2016/06/28
  • Vimの標準プラグインmatchparenが遅かったので8倍くらい速いプラグインを作りました - プログラムモグモグ

    コードを書いているとき、対応する括弧はとても大事です。エディターの中でカーソル下の括弧がどこと対応しているかが一目でわかると便利です。Vimの標準のプラグインにmatchparenというプラグインがあります (:h matchparen)。 私もずっとmatchparenのハイライトに依存してコードを書いてきました。しかし、だんだんこのプラグインのパフォーマンスが気になるようになってきました。標準プラグインなのですがわりと重い処理をやっていると思います。対応括弧をハイライトするプラグインによって余計な処理が行われて、コーディングの妨げになってはあまりよくありません。 最初はパッチを送ることも考えましたが、プロファイルを取った結果、どうしてもある機能を実現するために必要な処理が重くて時間がかかっていることに気が付きました (3日くらい前のことです)。その機能を落とすのは標準プラグインには受け

    Vimの標準プラグインmatchparenが遅かったので8倍くらい速いプラグインを作りました - プログラムモグモグ
    nyangry
    nyangry 2016/03/31