#author("2022-09-08T21:29:07+00:00","default:hotate","hotate") #author("2023-10-22T08:53:54+00:00;2022-09-08T21:29:07+00:00","default:hotate","hotate") #contents &tag(Vim, エディタ); &tag(Vim,エディタ); * 概要 [#saaacb4a] - [[Vim初心者に捧ぐ実践的入門 - Qiita>https://qiita.com/okamos/items/c97970ab34ff55ff3167]] - [[現場でvim慣れていない人が知っておくと便利なTips - いろいろ備忘録日記>https://devlights.hatenablog.com/entry/2021/01/28/235613]] この記事は、vimに全然慣れていない人向けの内容です。以下に当てはまる方でしたら、良ければご参照ください。 - 特に vi (vim) とかに興味はない。使い方を極めたいわけではない。 ** neovim [#x57bede5] - [[neovim とは何か? | Vim入門>https://vim.blue/what-is-neovim/]] neovim は、拡張性と使いやすさのために刷新したVim派生テキストエディタです。つまり、過去に改善を積み重ねてきた Vim を作り直し、スリム化とモダンな機能を搭載した新たな Vim ということになります。 * [[コマンド]] [#jd01eea6] - [[Vim Cheat Sheet - 日本語>https://vim.rtorr.com/lang/ja/]] - [[このブログの目次 - Vim のブログ>http://vimblog.hatenablog.com/entry/index]] テキストエディター Vim の魅力、使い方のコツを初心者にも分かりやすく伝えていきたいと思います。 - [http://net-newbie.com/linux/commands/vi.html viエディタの使い方] - [[viコマンド一覧 - bnote>http://www.bnote.net/linux/vi_command.shtml]] - [[よく使う Vim のコマンドまとめ - Qiita>http://qiita.com/hide/items/5bfe5b322872c61a6896]] - [[[Vim] プラグインなしでもデフォルトの機能で色々できるよ - Qiita>http://qiita.com/masa_suizu/items/a9f77a7310d1e53a95b1]] ファイル操作で便利な機能やプラグインに頼らなくてもできることなどをまとめていこうと思います。 - [[【Vim入門】ノーマルVimで使えると便利かもなコマンド10つ - Qiita>http://qiita.com/simeji/items/527478831eb561b06c17]] ciw, ciW テキストオブジェクトを削除して挿入モードになります。 |CENTER: コマンド |CENTER: 操作 |h | f | 行の順方向に一文字検索 | | ; | 行の順方向に繰り返し検索 | | F | 行の逆方向に一文字検索 | | , | 行の逆方向に繰り返し検索 | ** カーソル・スクロール [#e3810997] - [[【入門】Vimで高速で移動~プラグインなしでの移動まとめ~ - Qiita>http://qiita.com/takeharu/items/9d1c3577f8868f7b07b5]] f その行の順方向に一文字検索 ; 順方向に繰り返し検索 , 逆方向に繰り返し検索 - [[Vim のスクロールコマンド - Vim のブログ>http://vimblog.hatenablog.com/entry/vim_scroll]] <C-u> 上方向 半画面分 up <C-d> 下方向 半画面分 down - [[Vimで、画面の端でスクロールするのではなく、数行余裕があるうちにスクロールする方法(scrolloff) - 結城浩のはてなブログ>https://hyuki.hatenablog.com/entry/20131206/vim]] :set scrolloff=3 を ~/.vimrc に書くと、3行余裕を持たせてスクロールするようになる。 ** ウインドウ [#rd3c4cf6] - [[Vimの便利な画面分割&タブページと、それを更に便利にする方法>https://qiita.com/tekkoc/items/98adcadfa4bdc8b5a6ca]] 水平分割 :split - [[Vim のウィンドウ分割機能 - Vim のブログ>http://vimblog.hatenablog.com/entry/vim_window]] <c-w>w/<c-w><c-w> 次のウィンドウに移動する w二回で手軽に移動 <c-w>c 現在のウィンドウを閉じる ** 検索・置換 [#d7e16342] - [[vi・vim勉強中。 - vim 文字列の検索>http://www.webhtm.net/vim/search.htm]] * カーソル位置の単語を下方向に検索する。/[カーソル位置の単語]と同じ動作。 # カーソル位置の単語を上方向に検索する。?[カーソル位置の単語]と同じ動作。 - [[vimgrepとQuickfix知らないVimmerはちょっとこっち来い - Qiita>http://qiita.com/yuku_t/items/0c1aff03949cb1b8fe6b]] -- 注:現在開いているファイルは'%'で指定する :vim {pattern} {file} | cw | cw を書くのが面倒くさい場合はvimがQuickfixにフックするためのイベントを用意しているので、それを使うとよい。 autocmd QuickFixCmdPost *grep* cwindow - [[vim-jp » Hack #56: ローカル変数の宣言位置に移動する>http://vim-jp.org/vim-users-jp/2009/08/13/Hack-56.html]] Normal modeでgdをタイプします。 gdはGo to local Declarationの略です。 これはカーソル下(あるいはカーソル近傍)の変数の宣言位置を検索するコマンドです。 - [[Vimで選択した内容で検索する - Panda Noir>https://www.pandanoir.info/entry/2018/01/13/150000]] 「選択範囲内で検索する」ではなく、「選択した文字列で検索する」というTipです。 1. ヤンクする 2. /を入力する 3. <C-r>を押す 4. ヤンクしたレジスタ名を入力する(yでヤンクした場合は無名レジスタなので"を押せばOK) - [[【vim】範囲を指定してカット、ヤンク(コピー)、ペースト at softelメモ>https://www.softel.co.jp/blogs/tech/archives/2664]] mコマンドはマークをつけるコマンド。「ここから、あそこまで」ができるようになる。 1、カット(もしくはヤンク)したい範囲の開始の位置にカーソルを移動。 2、マークする(mmと入力)。 3、カット(もしくはヤンク)したい範囲の終了の位置にカーソルを移動。 4、d`m でカット、y`m でヤンク(コピー)できる。 - [[vim 文字列置換 基本的な事 - Qiita>https://qiita.com/shirochan/items/a16487d0739f455b5e8a]] :%s/hoge/fuga/gc とすればファイル内すべてのマッチした文字列を確認しながら置換できます - [[vimのパターン検索と置換で知っておくべきこと - neovim/vim入門>https://kaworu.jpn.org/vim/vim%E3%81%AE%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E6%A4%9C%E7%B4%A2%E3%81%A8%E7%BD%AE%E6%8F%9B%E3%81%A7%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%B9%E3%81%8D%E3%81%93%E3%81%A8]] ここでは、知っておくべき、いくつかのエッセンスを取り上げます。 - [[vimでカーソル位置の単語をコマンド行に挿入 - いろいろ備忘録日記>https://devlights.hatenablog.com/entry/2021/01/18/220042]] コマンドモードの状態で、Ctrl+r, Ctrl+w って押すとカーソル下の単語が挿入されます。 - [[Vimで改行コード^Mを置換しました - Qiita>https://qiita.com/pugiemonn/items/4f67379f70290c5c86a1]] コマンドモードで、『Ctrl+V』を押してから、『Ctrl+M』を押すと、改行コードの^Mを入力することができました ** コピー・アンド・ペースト [#ga9a04cb] - [[vimでペーストするときインデントさせない - Qiita>https://qiita.com/quwa/items/019250dbca167985fe32]] :a! ペースト エスケープキー ** 履歴 [#s28d44f1] - [[コマンド履歴、検索履歴を活用して、作業効率を上げよう。 — 名無しのvim使い>http://nanasi.jp/articles/howto/editing/use-command-history.html]] 直近のコマンド、検索の単純な再実行であれば、 ↑ 、 ↓ キーによる 履歴機能を使用する方がお手軽です。 - [[最後に保存してから、どのくらい編集したのかの差分を表示 — 名無しのvim使い>https://nanasi.jp/articles/howto/diff/diff-original-file.html]] このコマンドを使用すると、ファイルを開いてから、あるいは最後にファイルを保存してから、 どれくらいの作業を行ったかの確認ができます。 ** 編集 [#qb5092c2] - [[Vim Advent Calendar 2013 97日目:モモンガでもわかるテキストオブジェクトとオペレータ - C++でゲームプログラミング>http://d.hatena.ne.jp/osyo-manga/20140307/1394204974]] テキストオブジェクトを一言でいうと『任意の範囲』になります。 - [[vimでの複数行インデント修正>https://qiita.com/yotsak83/items/dde3ab7efa0185c70fb9]] shift + v でVISUALモードで行選択 j(下)かk(上)でインデントしたい行を選択 shift + > でインデントされる ** [[日時]] [#hca7ac4a] - [[Vimで現在日時を自動的に挿入する方法 - 結城浩のはてなブログ>https://hyuki.hatenablog.com/entry/20130714/vim]] " 現在日時を入力 nmap <C-o><C-o> <ESC>i<C-r>=strftime("%Y-%m-%d %H:%M:%S ==========")<CR><CR> ** ファイラ [#kbff3fd1] - [[vimでファイラー - ひゃまだのブログ>https://sites.google.com/site/hymd3a/vim/netrw]] vim . # カレントディレクトリを開く vim hoge/doc # 指定するディレクトリを開く - [[netrw.vimでディレクトリをツリー表示する: Architect Note>http://blog.tojiru.net/article/234400966.html]] ディレクトリを開いた状態でiを押すたびに表示が切り替わります。このうちのツリー表示がなかなか便利。 - [[vimの標準ファイラnetrwは普通に良さそうな話し - Qiita>https://qiita.com/gorilla0513/items/bf2f78dfec67242f5bcf]] 標準のnetrwのファイルツリーでは、若干見づらいので、見た目をls -laコマンドに近づけます。 ** ディレクトリ [#p867ca53] - [[vimで開いているファイルのディレクトリに移動する>https://qiita.com/shiena/items/1e98fd14d0ef0084b17f]] " グローバルなカレントディレクトリを変更する :cd %:h * 設定 [#i3049857] - [[Rubyプログラミングが快適になるVim環境を0から構築する - Qiita>http://qiita.com/mogulla3/items/42a7f6c73fa4a90b1df3]] より快適なVim × Ruby環境を目指して構築したvim環境について。 0からでも構築できるように整理した。 - [[コードの記憶 MacOSX(10.8) の vim で、rubyの構文ハイライトを有効化する>http://code2wing.blog83.fc2.com/blog-entry-78.html]] "カーソルキーで行末/行頭の移動可能に設定 set whichwrap=b,s,[,],<,> "カラーシンタックスを有効にする syntax on - [[いまさら聞けないVim(6):設定ファイルを作って自分の好みに改造 (3/3) - @IT>http://www.atmarkit.co.jp/ait/articles/1107/21/news115_3.html]] これまでに紹介した基本的な設定項目を利用して、設定ファイルのサンプルを作ってみると以下のようになる。 コピー&ペーストして最初の足がかりとして使ってみるといいだろう。 - [[何も考えず~/.vimrcにこれを書くんだ! 〜vim初心者によるvim初心者のためのvim入門〜 - Qiita>http://qiita.com/mfujimori/items/9fd41bcd8d1ce9170301]] - [[vimでソースをもりもり読む - 藻ログ>http://wakame.hatenablog.jp/entry/2016/10/24/080347]] unite-outline 今開いているファイルの関数リストを出力して,ジャンプできるようにします. texのlabelも拾えるので,寧ろ原稿を書くときに便利です. - [[カレント行にアンダーラインを引く - ryochack.clipboard>https://ryochack.hatenadiary.org/entry/20111029/1319913548]] カレント行全体に色が着くのが嫌なので、下線だけ引くように設定。 highlight CursorLine cterm=underline ctermfg=NONE ctermbg=NONE ** 文字コード [#ef841b80] - [[vimで改行コードをCRLF(dos)からLF(unix)に修正する - Qiita>https://qiita.com/gillax/items/3dad7318662d29b3f6d1]] fileformats=unix,dos,mac ** カラー [#kd857dcc] - [[半透明でも見やすいかもしれないvim color scheme - Qiita>http://qiita.com/ryoff/items/134b758afa8cc45a43d3]] 自分はターミナルの設定を半透明にしていたため、黒背景を前提としているcolorschemeだと、全体的に濃淡の差が少ない見た目になってしまい、濃淡がはっきりしているschemeがいいのかな、と。 - [[デフォルトでインストールされている — 名無しのvim使い>http://nanasi.jp/colorscheme/default_install.html]] vimエディタにデフォルトで添付しているカラースキーマの一覧です。 これらのカラースキーマは新たに入手する必要はありません。 - [[VimLで色指定する数値の一覧 | Inhale n' Exhale>https://h2plus.biz/hiromitsu/entry/674]] 文字色や背景色の色指定をctermbgなどの数値で設定する際に、色と数値の対応表がほしくなることがある。 * [[書籍]] [#r4b87a70] - [[実践Vim【委託】 - 達人出版会>https://tatsu-zine.com/books/practical-vim]] Vimのコア機能を徹底解説。古くて新しいUnixのエディタVim--このVimのエディタとしてのコア機能をマスターするためのレシピ集。 * [[Ruby]] [#p2a21679] - [[Vim で Ruby を書くならこれを使え! - pockestrap>http://pocke.hatenablog.com/entry/2015/09/13/234239]] この記事では、Ruby に特化したプラグイン/設定の紹介をしたいと思います。 ** [[ctags]] [#cd60d870] - [[Rubyのコードを読むのが捗る技 (Vim) - Qiita>https://qiita.com/joker1007/items/9c114a37560d6a29fe81]] 定義元を知りたいメソッドにカーソルを合わせて、<CTRL-]>をタイプすると、定義元にジャンプできます。 戻りたい時は、<CTRL-T>をタイプします。スタックを辿って戻っていけます。 * [[macOS]] [#he25be19] - [[初心者向け Vimでクリップボード連携(コピー&ペースト)する方法>https://qiita.com/iwaseasahi/items/a45b99a484966662adbe]] Macに標準でインストールされているVimではクリップボード連携が出来ません。ヤンク(y)でコピーしても、メモ帳など他の場所にペーストが出来ないということです。 - [[homebrewでmacvimを入れてviを置き換える - Qiita>https://qiita.com/macoshita/items/63188395375686cd6e79]] 恥ずかしながらmvim -vというコマンドを初めて知りました。