タグ

Vimに関するryochackのブックマーク (114)

  • Undoを管理する - Qiita

    記事は Vim Advent Calendar 2012 の169日目です。 168日目は@cohamaさんによる、tig なんて目じゃない! Git のログ系 Vim プラグイン gitv & gitv をGit 統合インターフェース化する最強の設定でした。 Vimにはundo(redo)機能があります。エディタとしては当たり前ですね。 回数は無制限です。ここまで聞くと高機能だと感じる方もいるかもしれません。 が、Vimは更にundo履歴をツリー状に管理することができます。標準で。 undo履歴のツリー管理機能を標準で持つエディタを他に聞いたことありませんし、 実際なかなか無いでしょう。 こうして標準搭載されていながらも、なぜかあまり噂を聞かない(私だけ?)この機能について 今回調べてみましたので、触れていこうかと思います。 undo-branches(undo-tree) アンドゥツ

    Undoを管理する - Qiita
    ryochack
    ryochack 2018/03/23
    "が、Vimは更にundo履歴をツリー状に管理することができます。標準で。"
  • Vimで選択部分のテキストを取得する - たけっぱ横丁

    Vimで選択した部分を取得する How to get visual selected text in Vim vimでscriptを書いていると,選択した部分にのみ結果を反映したいみたいなことがあります. この方法を自分で色々調べていたのですが How to get visually selected text in VimScrip こんな資料が見つかったりするわけです. 方法その1 選択部分のエリアを探して,その部分を取得する function! GetVisualSelection() " Why is this not a built-in Vim script function?! let [lnum1, col1] = getpos("'<")[1:2] let [lnum2, col2] = getpos("'>")[1:2] let lines = getline(lnum

    Vimで選択部分のテキストを取得する - たけっぱ横丁
    ryochack
    ryochack 2017/11/26
  • Big Sky :: Vim と日本語入力の話。

    8/31、patch 8.0.1026 で LinuxVim のとある挙動が修正されました。 patch 8.0.1026: GTK on-the-spot input has problems - vim/vim@5c6dbcb - GitHub https://github.com/vim/vim/commit/5c6dbcb03fa552d7b0e61c8fcf425147eb6bf7d5 この修正は、LinuxVim の IME (Input Method Editor) の挙動を修正する物ですが、この1つのパッチの為に多くの開発者が動いたという話です。 Vim と IME と僕 このパッチ、多い時で月に100個以上もリリースされる大量のパッチの1つに過ぎないのですが、実はこのパッチには思い入れがあり記事にせずにいられませんでした。この問題が修正されるまでに至った経緯を

    Big Sky :: Vim と日本語入力の話。
    ryochack
    ryochack 2017/09/06
  • Vim の :terminal がもたらすもの - Humanity

    追記 記事を書いた後いろいろ状況が変わって :terminal コマンドが使える Vim が配布されるようになったので、 とりあえず現時点(2017/09/15)での状況を書きました。 tyru.hatenablog.com 序文 今絶賛開発中の Vim の :terminal コマンドについて書こうと思う。 :terminal コマンドを実行するとシェルが開き、Vim 上で操作することができる、というもの。 つまり実質的に Vim は端末ソフトウェアとなった。 その上 Vim script で端末上の様々な内容にアクセスしたり変更することができる。 expect コマンド、parallel-ssh のようなツールを Vim script で自作することも可能となった。 しかし、すでにそれらのコマンドがある以上 Vim プラグインで実現する必要性は薄いだろう。 Vim の :termin

    Vim の :terminal がもたらすもの - Humanity
    ryochack
    ryochack 2017/08/15
  • vimでクリップボード連携を有効にした話 - pockestrap

    前提 +clipboardなターミナル上のVim GNU / Linux +clipboardがついていない場合(vim --versionで確認できます)は、vimをコンパイルしましょう。コンパイル楽しい!! やったこと ターミナル上のCUIVimでyankした時、それがクリップボードに入るようにした。 結論 ~/.vimrcに次の2行を追加 set clipboard& set clipboard^=unnamedplus 説明 unnamedplus vimからclipboardを使うには、clipboardオプションにunnamedplusを含めます。 調べているとunnamedを加えると書いてあるものも多いですが、Linuxではunnamedだと中クリックでペーストされるものに、unnamedplusだとC-vなどでペーストされるものになります。 そのため、Linuxでyank

    vimでクリップボード連携を有効にした話 - pockestrap
  • Arch LinuxでVimのクリップボードを使う方法

    こんにちは。今回のテーマは『Arch LinuxVimのクリップボードを使う』です。筆者はブログの記事をvimで書いているのですが(気まぐれなので時々Bluefishですが)Arch Linuxvimでクリップボードを使ってウェブブラウザにコピー・アンド・ペーストしようとしたら出来ないことに気が付きました。vimをビルドし直して使えるようにしたので記事にしました。 ※記事はXfce4上で検証しました。他の環境での動作は保証出来ません。作業はご自身の責任で行ってください。 【関連記事】 VimMarkdownエディタにするmdforvimプラグインを公開しました これで使える!Vimのコマンド集(基操作編) 初期状態のvimはクリップボードが使えない状態 少し意外かも知れませんが、Arch Linuxvimを単体で以下のコマンドでインストールした方はクリップボードが使えません。

    Arch LinuxでVimのクリップボードを使う方法
  • Vimでwrapした文章もインデント出来る様になった

    B! 8 0 0 0 Vimのちょっと前のアップデートbreakindentというオプションが加わって 折り返された部分もインデント出来る様になった様で、 しばらく気になったままおいておきましたが Vimをアップデートして色々設定してみました。 breakindent (bri) breakindentopt (briopt) 現在の業折り返し設定 breakindent (bri) breakindentはVim 7.4, patch 338から加わったオプションで 1、 wrapオプションを有効にしている時なんかに 折り返された部分もインデントされるようにするオプションです。 こんな感じで、もともと折り返された部分は左端から始まりますが、 それがインデントされたコラムから始まる様になります。 breakindentopt (briopt) breakindentを有効にした時の動作

    Vimでwrapした文章もインデント出来る様になった
    ryochack
    ryochack 2017/06/04
    breakindent
  • vimでバイナリを表示し、値を変更したい - rderaログ

    バイナリファイルを表示させることなら、 $ hexdump -C picture.png 00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR| 00000010 00 00 00 0a 00 00 00 0f 08 02 00 00 00 52 9d c9 |.............R.?|とか、 $ xxd picture.png 0000000: 8950 4e47 0d0a 1a0a 0000 000d 4948 4452 .PNG........IHDR 0000010: 0000 000a 0000 000f 0802 0000 0052 9dc9 .............R..みたいに、hexdumpコマンドとかxxdコマンド(この記事を書いてて知った)を使えばできる。 でも、

    ryochack
    ryochack 2017/02/01
    [binary]
  • Vim のソースのいじり方(:terminal を作るまで) - Qiita

    この記事は Vim Advent Calendar 2016、18日目の記事です。 記事を執筆した2016年12月時点では vim に :terminal コマンドが実装されていませんでしたが、2017年7月に vim 体に :terminal コマンドが実装されました。以下は参考程度に参照して下さい。 はじめに ここ数年で、vim にコントリビュートする方が随分と増えた様に思います。リポジトリが GitHub に移ったのは vim-dev にとっても、そして vim-jp にとっても、やはり良い出来事だったと今更ながら感じています。 しかしながらその動きが遅かった事もあり neovim という派生が誕生する事になります。個人的には neovimエンジニアリングとしては成功しており、悪い事だとは感じてはいません。できれば良い競争相手でい続けられればと思います。 さて neovim

    Vim のソースのいじり方(:terminal を作るまで) - Qiita
    ryochack
    ryochack 2016/12/18
  • VsVimのC-[を使えるようにする - Qiita

    VsVimのC-[がうまく動かない Visual Studioの拡張で、VsVimがある。 Vimと同じ操作ができていい。 だけど、C-[がうまく動いてくれない! 直す方法 Visual Studioのオプション画面を開く 環境→キーボードを開く 「編集.選択解除」コマンドを選ぶ ショートカットキーの枠内で「C-[」を押す 割り当てボタンを押す その他 他に、もっとい方法があると思う。。 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

    VsVimのC-[を使えるようにする - Qiita
    ryochack
    ryochack 2016/09/20
    素晴らしい情報だった。ありがたやありがたや…!
  • Vim 8.0 新機能解説

    2016-09-12、前メジャーバージョンから10年、Vim 7.4 からは3年の歳月を経て Vim の最新版である Vim 8.0 がリリースされました。 Vim 8.0 の大きな変更点としては、まず多くのバグ修正が上げられます。7.4 に存在した数多くの問題が修正されています。 また以下の素晴らしい機能拡張も行われました。 チャネルによる非同期 I/O のサポート (Channel) バックグラウンドプロセスと非同期にメッセージを交換できる仕組みが実装されました。JSON で通信するサーバと対話する事も出来ます。 詳しくは :help channel を参照して下さい。 ジョブ (Job) これまで外部コマンドを実行する際にブロックしていましたが、ジョブ機能の追加により非同期にコマンドを実行する事ができる様になりました。また channel 機能を使って標準入出力を経由し、非同期にメッ

    Vim 8.0 新機能解説
    ryochack
    ryochack 2016/09/14
  • vim-jp » Hack #4: Insert mode補完 導入編

    ツイート Vimが他のエディタと比較して優れている点の一つとして、豊富な補完機能が挙げられます。Hackでは特にInsert modeで使用できる補完について解説します。ほとんどの補完機能は<C-x>で始まるキーに割り当てられています。よく使う補完機能には、各々が押し易いキーに割り当てると良いでしょう。Insert mode補完についての詳しい解説は:help ins-completionを参照してください。 <C-n>または<C-p>: 様々なソースからのキーワード補完 <C-x><C-n>と似ていますが、オプション'complete'で指定された場所からキーワードを検索する点が異なります。プログラミングでは同じ単語を何度も使用することが多いうえ、キーバインドが押し易いこともあって、一番便利な補完です。'complete'を調整することで、辞書補完などの他の補完をも同時に行うことができ

  • VimのCTRL-X補完について - daisuzu's notes

    この記事はVim Advent Calendar 2015の5日目の記事です。 Vimで補完といえばShougoさんのプラグインneocompleteが有名ですが、プラグインを使わなくてもCTRL-X サブモードで補完を行うことが可能です。 この機能はブログや書籍などでたびたび紹介されてはいますが、文字だけではイメージがつきにくいところもあるのでGIFアニメで紹介してみたいと思います。 行(全体)補完: CTRL-X CTRL-L if から始まる行と l から始まる行を補完(go) 検索対象はcompleteオプションで設定可能 局所キーワード補完: CTRL-X CTRL-N / CTRL-X CTRL-P 現在のファイルから T で始まるキーワードを補完(perl) 辞書補完: CTRL-X CTRL-K dictionaryオプションで設定したファイルから twist で始まる単語

    VimのCTRL-X補完について - daisuzu's notes
  • Web Components と Electron でつくる Neovim フロントエンドの未来 - はやくプログラムになりたい

    この記事は Vim Advent Calendar 2015 の20日目の記事です. まずはこちらのスクリーンショットをご覧ください. エディタの UI やカーソル移動は Vim っぽいですが,markdown ライブプレビューやカーソル位置での画像ポップアップ,組み込みブラウザなど謎の UI が見て取れます.記事ではこれについてボトムアップで必要な知識から順を追って紹介します. 長い……三行で Neovim msgpack-rpc API を使って <canvas> と Node.js APINeovim フロントエンドを作成し Web Component としてラップ して HTML アプリに簡単に組み込めるようにした上で UI プラグインをウェブ技術で構築できる NyaoVim という Neovim GUI エディタを Electron 使ってつくってます. 目次 Web C

    Web Components と Electron でつくる Neovim フロントエンドの未来 - はやくプログラムになりたい
    ryochack
    ryochack 2015/12/20
    すごい…
  • VIMのsystem()からgit cloneがエラー - Qiita

    VIMからsystem()関数を使って、git cloneをしたいんですが、実行するとtempファイルを作り損ねているのか、 「E484: ファイル "C:\Users\ ...ユーザーのtempフォルダ... \tmp" を開けません」と出てきます。 どこの設定がおかしいんでしょう... 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のsystem()からgit cloneがエラー - Qiita
    ryochack
    ryochack 2015/04/19
  • Vim上でGaucheのREPLを動かす - aharisuのごみ箱

    ※2012/5/4 追記 neocomplcache用のキーワードパターン記述を追加 タイトル通り、画像の通りのものを作りました。 Vim上からgoshREPLを扱うためのVimscriptです。 ソースコードはGithubにあります。こちら。 インストール方法は標準の方法と変わりないので割愛。 ただ、動かすためにはvimprocとGauche体が必要なのでそちらも一緒にインストールしてください。 操作方法は基的には標準のgoshと同じです。 ただ、Vim上で扱うということで様々な恩恵を受けることができます。 RedoとUndoが使える シンタックスハイライト、オートインデントが可能 neocomplcache等による補完機能が使える (readline風に)入力履歴をさかのぼることができる 以前に入力したテキストを範囲選択して(テキストを少し修正して)再び実行することができる ※追記

    Vim上でGaucheのREPLを動かす - aharisuのごみ箱
  • vimrcアンチパターン - rbtnn雑記

    この記事はVim Advent Calendar 2014 - Qiita1日目の記事です。 今回は、もう130回も続いているvimrc読書会でよく見られるvimrcのアンチパターン、 まぁ「これは気を付けたほうがいいんじゃない」的なことを私なりにまとめてみようと思う。 vimrcの文字コード Vim scriptにはscriptencodingという現在のVim scriptファイルの文字コードを指定するコマンドが存在します。 一般的にscriptencodingはマルチバイト文字を使う前に宣言します。マルチバイト文字を一切使っていない場合、特に宣言する必要はないでしょう。 なので、マルチバイト文字をvimrc内で使用する場合(コメント内でマルチバイト文字を使用する場合も含みます)、vimrcの先頭で宣言するのがいいでしょう。 悪いパターン " ミュートにする。 set t_vb= se

    vimrcアンチパターン - rbtnn雑記
  • vim-go-impl つくった - はやくプログラムになりたい

    impl という Go のコマンドラインツールがあります. レシーバとそのレシーバが実装するインターフェースを引数に渡すと,実装しないといけない関数のひな形を自動生成してくれます. 便利そうだったので,とりあえず Vim から使う用に vim-go-impl というプラグインを作ってみました. https://github.com/rhysd/vim-go-impl 使い方は至って簡単で,:GoImpl {receiver} {interface} というコマンドを使うだけです. 使用例: 家の impl はコマンドラインツールなのでシングルクォートが必要でしたが,vim-go-impl ではそのあたりを良い感じに処理するようにしてシングルクォートを要らないようにしました.また,vimproc がある場合はそっちを使うようになっています. もしよろしければお試しください.

    vim-go-impl つくった - はやくプログラムになりたい
  • Vim の textobj プラグインをまとめた - C++でゲームプログラミング

    この記事は Vim Advent Calendar 2012 229日目の記事になります。 最近やっと textobj を利用し始めた情弱な Vimmer なんですが、どんな textobj があるのか知らなかったので調べられる範囲でまとめてみました。 基的に kana さんの vim-textobj-user を使用しているプラグインを上げてあります。 ご覧の通り量が多いので typo などがあったらごめんなさい(・ω<) [textobj 一覧] プラグイン 範囲 マッピング 備考 user entire バッファ全体 ae, ie line カーソル行 al, il 参照 function 関数内 af, if syntax シンタックス ay, iy jabraces 「foo」 or 【bar】など ajb, ijb lastpat 最後に検索されたパターン a/, i/ in

    Vim の textobj プラグインをまとめた - C++でゲームプログラミング
    ryochack
    ryochack 2014/07/16
  • vimrc基礎文法最速マスター - 永遠に未完成

    調子に乗って vimrc を書くのに特化した内容のものを書いてみる。取り上げた内容は完全に独断と偏見です。 関連記事: Vimスクリプト基礎文法最速マスター - 永遠に未完成 この記事では vimrc を書くにあたって知っておくべき概念や機能を解説します。Vim 自体の操作方法に関しては触れません。 基礎 バッファ バッファは、ファイルを編集するための論理的な領域です。Vim で新しくファイルを開くと、新しいバッファが作成されてそこにファイルの内容が読み込まれます。 ウィンドウ ウィンドウはバッファを画面に表示するための物理的な領域です。分割することができ、1つの画面に複数のウィンドウを表示できます。 タブページ タブページを使うことでウィンドウの配置を保持したまま複数の画面を切り替えることができます。 タブ文字と区別するためか、タブページと呼ばれています。 モード Vim の中でも知って

    vimrc基礎文法最速マスター - 永遠に未完成
    ryochack
    ryochack 2014/07/12