https://kaworu.jpn.org/vim/api.php?action=feedcontributions&user=Daemon&feedformat=atom
neovim/vim入門 - 利用者の投稿記録 [ja]
2024-03-29T09:40:37Z
利用者の投稿記録
MediaWiki 1.24.1
https://kaworu.jpn.org/vim/index.php?title=neovim%E3%82%92Mac_OS_X%E3%81%ABHomebrew%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B&diff=279
neovimをMac OS XにHomebrewコマンドでインストールする
2017-09-25T14:39:45Z
<p>Daemon: </p>
<hr />
<div>[[neovim]]は、<u>'''Mac OS X'''に '''Homebrew''' で簡単にインストールできます</u>。GUIの[[neovim]]もあります。<br />
<br />
'''読み方'''<br />
;[[neovim]]:ねお ぶいあいえむ<br />
;Homebrew:ほーむぶりゅー<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[neovim]]は、Mac OS X でも簡単に利用できます。<br />
== homebrewのインストール ==<br />
brew コマンドがインストールされていない場合には、まず、 brew からインストールします。 <br />
<syntaxhighlight lang="bash"><br />
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"<br />
</syntaxhighlight><br />
Homebrew については、 https://brew.sh/index_ja.html をご参照下さい。<br />
== neovimのインストール ==<br />
<syntaxhighlight lang="bash"><br />
$ brew tap neovim/neovim<br />
$ brew install neovim<br />
$ brew install python3<br />
$ sudo pip3 install neovim<br />
</syntaxhighlight><br />
python3 をインストールする理由は、 pip3 を入れて、 python の neovim をインストールするためです。<br />
== GUIのneovimのインストール==<br />
VimのGUIは、 KaoriYa を使うという印象だが、 neovim では、 neovim-dot-app を使えば良いです。<br />
<br />
事前に Xcode.app (Xcode) のインストールが必要です。<br />
<syntaxhighlight lang="bash"><br />
brew install scons<br />
brew tap neovim/neovim<br />
brew tap rogual/neovim-dot-app<br />
sudo xcodebuild -license accept<br />
brew install neovim-dot-app<br />
</syntaxhighlight><br />
=== Xcode がないと失敗する ===<br />
<syntaxhighlight lang="bash"><br />
% brew install neovim-dot-app <br />
==> Installing neovim-dot-app from rogual/neovim-dot-app<br />
neovim-dot-app: A full installation of Xcode.app is required to compile this software.<br />
Installing just the Command Line Tools is not sufficient.<br />
Xcode can be installed from the App Store.<br />
Error: An unsatisfied requirement failed this build.<br />
[1] 94753 exit 1 brew install neovim-dot-app<br />
</syntaxhighlight><br />
=== Xcode ライセンスに同意していないとダメ ===<br />
Xcode ライセンスに同意していないとエラーになります。<br />
<syntaxhighlight lang="bash"><br />
% brew install neovim-dot-app <br />
Error: You have not agreed to the Xcode license. Please resolve this by running:<br />
sudo xcodebuild -license accept<br />
</syntaxhighlight><br />
=== ビルドでコケる ===<br />
なぜか、ビルドで失敗した件。<br />
<syntaxhighlight lang="bash"><br />
% brew install neovim-dot-app <br />
Updating Homebrew...<br />
==> Auto-updated Homebrew!<br />
Updated 1 tap (homebrew/core).<br />
==> Updated Formulae<br />
bit<br />
<br />
==> Installing neovim-dot-app from rogual/neovim-dot-app<br />
==> Installing dependencies for rogual/neovim-dot-app/neovim-dot-app: pkgconfig<br />
==> Installing rogual/neovim-dot-app/neovim-dot-app dependency: pkgconfig<br />
==> Downloading https://homebrew.bintray.com/bottles/pkg-config-0.29.2.sierra.bottle.tar.gz<br />
######################################################################## 100.0%<br />
==> Pouring pkg-config-0.29.2.sierra.bottle.tar.gz<br />
/usr/local/Cellar/pkg-config/0.29.2: 11 files, 627.1KB<br />
==> Installing rogual/neovim-dot-app/neovim-dot-app<br />
==> Downloading https://github.com/rogual/neovim-dot-app/archive/0.1.5.tar.gz<br />
==> Downloading from https://codeload.github.com/rogual/neovim-dot-app/tar.gz/0.1.5<br />
######################################################################## 100.0%<br />
==> make NVIM=/usr/local/opt/neovim/bin/nvim<br />
Last 15 lines from /Users/kaoru/Library/Logs/Homebrew/neovim-dot-app/01.make:<br />
2017-09-25 15:52:06 +0900<br />
<br />
make<br />
NVIM=/usr/local/opt/neovim/bin/nvim<br />
<br />
VIM=/usr/local/Cellar/neovim/0.2.0_1/share/nvim NVIM=/usr/local/opt/neovim/bin/nvim scons -Q<br />
File "/private/tmp/neovim-dot-app-20170925-96264-9vos24/neovim-dot-app-0.1.5/SConstruct", line 14<br />
<br />
print "Unable to execute pkg-config, you may have to set CFLAGS and LDFLAGS by hand."<br />
<br />
^<br />
<br />
SyntaxError: invalid syntax<br />
<br />
make: *** [all] Error 2<br />
<br />
If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):<br />
https://github.com/rogual/homebrew-neovim-dot-app/issues<br />
<br />
These open issues may also help:<br />
VIM env var in neovim directory https://github.com/rogual/homebrew-neovim-dot-app/issues/15<br />
Python is an unnecessary dependency https://github.com/rogual/homebrew-neovim-dot-app/issues/2<br />
[1] 95565 exit 1 brew install neovim-dot-app<br />
</syntaxhighlight><br />
=== brewのlinkappsは deprecated ===<br />
インストール方法の説明に brew linkapps って書いてあるケースがあるけど、 brew ではすでに deprecated になっている。<br />
<syntaxhighlight lang="bash"><br />
% brew linkapps neovim-dot-app <br />
Warning: `brew linkapps` has been deprecated and will eventually be removed!<br />
<br />
Unfortunately `brew linkapps` cannot behave nicely with e.g. Spotlight using<br />
either aliases or symlinks and Homebrew formulae do not build "proper" `.app`<br />
bundles that can be relocated. Instead, please consider using `brew cask` and<br />
migrate formulae using `.app`s to casks.<br />
Error: No such keg: /usr/local/Cellar/neovim-dot-app<br />
[1] 95189 exit 1 brew linkapps neovim-dot-app<br />
</syntaxhighlight><br />
== 設定 ==<br />
[[neovim]]の設定に関しては、[[neovimの設定ファイルとディレクトリの置き場]]をご参照ください。<br />
<syntaxhighlight lang="bash"><br />
mkdir -p ${XDG_CONFIG_HOME:=$HOME/.config}<br />
ln -s ~/.vim $XDG_CONFIG_HOME/nvim<br />
ln -s ~/.vimrc $XDG_CONFIG_HOME/nvim/init.vim<br />
</syntaxhighlight><br />
== 関連項目 ==<br />
* [[neovimの設定ファイルとディレクトリの置き場]]<br />
* [[neovim]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=neovim%E3%82%92Mac_OS_X%E3%81%ABHomebrew%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B&diff=278
neovimをMac OS XにHomebrewコマンドでインストールする
2017-09-25T14:35:09Z
<p>Daemon: </p>
<hr />
<div>[[neovim]]は、<u>'''Mac OS X'''に '''Homebrew''' で簡単にインストールできます</u>。<br />
<br />
'''読み方'''<br />
;[[neovim]]:ねお ぶいあいえむ<br />
;Homebrew:ほーむぶりゅー<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[neovim]]は、Mac OS X でも簡単に利用できます。<br />
== インストール ==<br />
<syntaxhighlight lang="bash"><br />
$ brew tap neovim/neovim<br />
$ brew install neovim<br />
$ brew install python3<br />
$ sudo pip3 install neovim<br />
</syntaxhighlight><br />
python3 をインストールする理由は、 pip3 を入れて、 python の neovim をインストールするためです。<br />
== GUIのneovimのインストール==<br />
事前に Xcode.app (Xcode) のインストールが必要です。<br />
<syntaxhighlight lang="bash"><br />
brew install scons<br />
brew tap neovim/neovim<br />
brew tap rogual/neovim-dot-app<br />
sudo xcodebuild -license accept<br />
brew install neovim-dot-app<br />
</syntaxhighlight><br />
=== Xcode がないと失敗する ===<br />
<syntaxhighlight lang="bash"><br />
% brew install neovim-dot-app <br />
==> Installing neovim-dot-app from rogual/neovim-dot-app<br />
neovim-dot-app: A full installation of Xcode.app is required to compile this software.<br />
Installing just the Command Line Tools is not sufficient.<br />
Xcode can be installed from the App Store.<br />
Error: An unsatisfied requirement failed this build.<br />
[1] 94753 exit 1 brew install neovim-dot-app<br />
</syntaxhighlight><br />
=== Xcode ライセンスに同意していないとダメ ===<br />
Xcode ライセンスに同意していないとエラーになります。<br />
<syntaxhighlight lang="bash"><br />
% brew install neovim-dot-app <br />
Error: You have not agreed to the Xcode license. Please resolve this by running:<br />
sudo xcodebuild -license accept<br />
</syntaxhighlight><br />
=== ビルドでコケる ===<br />
なぜか、ビルドで失敗した件。<br />
<syntaxhighlight lang="bash"><br />
% brew install neovim-dot-app <br />
Updating Homebrew...<br />
==> Auto-updated Homebrew!<br />
Updated 1 tap (homebrew/core).<br />
==> Updated Formulae<br />
bit<br />
<br />
==> Installing neovim-dot-app from rogual/neovim-dot-app<br />
==> Installing dependencies for rogual/neovim-dot-app/neovim-dot-app: pkgconfig<br />
==> Installing rogual/neovim-dot-app/neovim-dot-app dependency: pkgconfig<br />
==> Downloading https://homebrew.bintray.com/bottles/pkg-config-0.29.2.sierra.bottle.tar.gz<br />
######################################################################## 100.0%<br />
==> Pouring pkg-config-0.29.2.sierra.bottle.tar.gz<br />
/usr/local/Cellar/pkg-config/0.29.2: 11 files, 627.1KB<br />
==> Installing rogual/neovim-dot-app/neovim-dot-app<br />
==> Downloading https://github.com/rogual/neovim-dot-app/archive/0.1.5.tar.gz<br />
==> Downloading from https://codeload.github.com/rogual/neovim-dot-app/tar.gz/0.1.5<br />
######################################################################## 100.0%<br />
==> make NVIM=/usr/local/opt/neovim/bin/nvim<br />
Last 15 lines from /Users/kaoru/Library/Logs/Homebrew/neovim-dot-app/01.make:<br />
2017-09-25 15:52:06 +0900<br />
<br />
make<br />
NVIM=/usr/local/opt/neovim/bin/nvim<br />
<br />
VIM=/usr/local/Cellar/neovim/0.2.0_1/share/nvim NVIM=/usr/local/opt/neovim/bin/nvim scons -Q<br />
File "/private/tmp/neovim-dot-app-20170925-96264-9vos24/neovim-dot-app-0.1.5/SConstruct", line 14<br />
<br />
print "Unable to execute pkg-config, you may have to set CFLAGS and LDFLAGS by hand."<br />
<br />
^<br />
<br />
SyntaxError: invalid syntax<br />
<br />
make: *** [all] Error 2<br />
<br />
If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):<br />
https://github.com/rogual/homebrew-neovim-dot-app/issues<br />
<br />
These open issues may also help:<br />
VIM env var in neovim directory https://github.com/rogual/homebrew-neovim-dot-app/issues/15<br />
Python is an unnecessary dependency https://github.com/rogual/homebrew-neovim-dot-app/issues/2<br />
[1] 95565 exit 1 brew install neovim-dot-app<br />
</syntaxhighlight><br />
=== brewのlinkappsは deprecated ===<br />
インストール方法の説明に brew linkapps って書いてあるケースがあるけど、 brew ではすでに deprecated になっている。<br />
<syntaxhighlight lang="bash"><br />
% brew linkapps neovim-dot-app <br />
Warning: `brew linkapps` has been deprecated and will eventually be removed!<br />
<br />
Unfortunately `brew linkapps` cannot behave nicely with e.g. Spotlight using<br />
either aliases or symlinks and Homebrew formulae do not build "proper" `.app`<br />
bundles that can be relocated. Instead, please consider using `brew cask` and<br />
migrate formulae using `.app`s to casks.<br />
Error: No such keg: /usr/local/Cellar/neovim-dot-app<br />
[1] 95189 exit 1 brew linkapps neovim-dot-app<br />
</syntaxhighlight><br />
== 設定 ==<br />
[[neovim]]の設定に関しては、[[neovimの設定ファイルとディレクトリの置き場]]をご参照ください。<br />
<syntaxhighlight lang="bash"><br />
mkdir -p ${XDG_CONFIG_HOME:=$HOME/.config}<br />
ln -s ~/.vim $XDG_CONFIG_HOME/nvim<br />
ln -s ~/.vimrc $XDG_CONFIG_HOME/nvim/init.vim<br />
</syntaxhighlight><br />
== 関連項目 ==<br />
* [[neovimの設定ファイルとディレクトリの置き場]]<br />
* [[neovim]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%A7%E9%95%B7%E3%81%84%E8%A1%8C%E3%81%8C%E3%81%82%E3%82%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%B7%A8%E9%9B%86%E3%81%8C%E9%87%8D%E3%81%9F%E3%81%8F%E3%81%AA%E3%82%8B%E7%8F%BE%E8%B1%A1%E3%81%AE%E5%AF%BE%E7%AD%96&diff=277
vimで長い行があるファイルの編集が重たくなる現象の対策
2017-09-17T09:41:38Z
<p>Daemon: ページの作成:「vimで「1行が長いファイルを編集している」ときに、カーソルの移動が重くなり、 使い物にならないことがあります。その場...」</p>
<hr />
<div>vimで「1行が長いファイルを編集している」ときに、カーソルの移動が重くなり、 使い物にならないことがあります。その場合の対策を紹介します。<br />
<br />
'''読み方'''<br />
;synmaxcol:しん まっくす こる<br />
__TOC__<br />
<br />
== 概要 ==<br />
1行が長いファイルの編集時に、vim のカーソル移動が非常に重たくなることがありませんか?<br />
この原因は、'''シンタックスハイライト''' です。<br />
<br />
XMLとか、HTML とか、1行で永遠と続いてしまっているやつだと重たくなります。<br />
ひょっとすると JSON のデータが長かったりしても、重くなるでしょう。<br />
== 解決策 ==<br />
シンタックスハイライトが原因で、カーソル移動などが遅くなってしまう場合の対策は、いくつかあります。<br />
* シンタックスハイライトをオフにする (:syntax off)<br />
* 改行を入れる<br />
* ハイライトする文字数を制限する (:set synmaxcol=3000)<br />
== 関連項目 ==<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&diff=276
メインページ
2017-09-17T09:31:33Z
<p>Daemon: </p>
<hr />
<div>== Vimに軽く入門する ==<br />
* [[vim]]とは<br />
* [[なぜvimを使うのか]]<br />
* [[これからはじめるvim]]<br />
* [[vimの便利な基本機能]]<br />
<br />
* [[vimの環境構築]]<br />
** [[vimをビルドする]]<br />
** [[vimのインストール]]<br />
** [[vimの設定ファイル]]<br />
** [[vimの設定をWindowsとLinuxとMacで共有する方法]]<br />
** [[Windowsにvimの環境を構築する方法]]<br />
<br />
* [[vimの検索と置換]]<br />
** [[vimのパターン検索と置換で知っておくべきこと]]<br />
<br />
* [[vimのPHP開発環境]]<br />
<br />
* [[キーストローク数の少なさを競うVimGolf]]<br />
<br />
* [[vimを終了する方法]]<br />
* [[vimでファイルを開く方法]]<br />
<br />
* [[vimで行を複製する方法]]<br />
* [[プログラミングに役立つvimのテクニック]]<br />
<br />
== Vimプラグインとスクリプト ==<br />
* [[vimのプラグイン管理]]<br />
* [[vimのプラグイン]]<br />
* [[vimスクリプト]]<br />
== Vimでホゲホゲする ==<br />
* [[vimでバイナリファイルを扱う]]<br />
* [[vimの起動が遅いときの対策]]<br />
* [[vimでコマンドを実行して新しいバッファに書き込む]]<br />
* [[vimで長い行を表示させる方法]]<br />
* [[vimで設定ファイルvimrcやプラグインを読み込まずに起動する方法]]<br />
* [[vimでMarkdownをプレビューする方法]]<br />
* [[gvimでShift InsertでS-Insertが入力されて貼り付けできない]]<br />
* [[vimでファイル全体をソートする方法]]<br />
* [[vimで長い行があるファイルの編集が重たくなる現象の対策]]<br />
== 統合開発環境としてのvim ==<br />
{{ide}}<br />
== 便利なプラグイン ==<br />
* [[vimプラグイン NERDTree ツリー型エクスプローラ]]<br />
== データベース ==<br />
* [[vimのdbext.vimでSQLデータベースを操作する方法]]<br />
== vimの新機能 ==<br />
* [[vim 8.0の新機能を解説します]]<br />
== neovim ==<br />
* [[neovim]]<br />
* [[neovimをFreeBSDにpkgコマンドでインストールする]]<br />
* [[neovim 0.1.1をビルドする]]<br />
== ブラウザとvi ==<br />
* [[ChromeやFirefoxでウェブページのtextareaをvi化するエクステンションwasavi]]</div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%85%A8%E4%BD%93%E3%82%92%E3%82%BD%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&diff=275
vimでファイル全体をソートする方法
2017-09-09T14:29:42Z
<p>Daemon: </p>
<hr />
<div>[[vim]]なら編集中のファイル内(バッファ全体)を簡単にソートできます。<br />
<br />
'''読み方'''<br />
;sort:そーと<br />
__TOC__<br />
<br />
== 概要 ==<br />
ファイルの編集中に以下の悩みを持つことはありませんか?<br />
* ファイルの行をソートしたい<br />
* 編集中のファイルの重複を省きたい<br />
<br />
vim を終了し、sort コマンドを利用して、ソートしてから、もう一度 vim でファイルを開く、といった面倒な方法もありますが、もっとスマートな方法があります。<br />
== 外部コマンドを利用したソート ==<br />
=== ファイル内をソートする方法 ===<br />
現在のファイル(バッファ)全体に対して、sort コマンドを実行する方法は以下の通りです。<br />
<syntaxhighlight lang="vim"><br />
:%!sort<br />
</syntaxhighlight><br />
* % (パーセント) は、現在のバッファを意味します。<br />
* '''!''' (エクスクラネーションマーク)は、システムのコマンドを実行することを意味します。<br />
<br />
さらに、ユニーク処理したいのであれば、 -u オプションを利用します。<br />
<syntaxhighlight lang="vim"><br />
:%!sort -u<br />
</syntaxhighlight><br />
== 内部コマンドを利用したソート ==<br />
=== ファイル内をソートする ===<br />
バッファ全体を'''昇順'''でソートする場合は、以下の通りです。<br />
<syntaxhighlight lang="vim"><br />
:sort<br />
</syntaxhighlight><br />
<br />
バッファ全体を'''降順'''でソートする場合は、以下の通りです。<br />
<syntaxhighlight lang="vim"><br />
:sort<br />
</syntaxhighlight><br />
=== 大文字小文字の区別なしでソートする ===<br />
<syntaxhighlight lang="vim"><br />
a<br />
A<br />
b<br />
B<br />
</syntaxhighlight><br />
を ''':sort''' でソートすると<br />
<syntaxhighlight lang="vim"><br />
A<br />
B<br />
a<br />
b<br />
</syntaxhighlight><br />
になります。<br />
<br />
大文字小文字を区別なしにソートするには<br />
<syntaxhighlight lang="vim"><br />
:sort i<br />
</syntaxhighlight><br />
を利用します。結果は、以下の通りになります。<br />
<syntaxhighlight lang="vim"><br />
A<br />
a<br />
B<br />
b<br />
</syntaxhighlight><br />
=== 8進数、10進数、16進数のソート ===<br />
それぞれ、以下のオプションを利用してソートできます。<br />
<syntaxhighlight lang="vim"><br />
:sort o<br />
:sort n<br />
:sort x<br />
</syntaxhighlight><br />
=== カンマで区切られた第2フィールドでソートする例 ===<br />
以下のデータがあったとき、セパレータを , (カンマ) とします。<br />
<syntaxhighlight lang="vim"><br />
foo,10,aaa<br />
bar,8,aaa<br />
hoge,20,aaa<br />
</syntaxhighlight><br />
ここでは整数の第2フィールドを10進数として、ソートしたい場合は、<br />
<syntaxhighlight lang="vim"><br />
:sort /[^,]*,/n<br />
</syntaxhighlight><br />
となります。<br />
結果は以下の通りです。<br />
<syntaxhighlight lang="vim"><br />
bar,8,aaa<br />
foo,10,aaa<br />
hoge,20,aaa<br />
</syntaxhighlight><br />
<br />
n オプションをつけないと、10,20,8 という順番で並ぶことになります。<br />
== まとめ ==<br />
* :%!sort や :sort で開いているファイル全体を簡単にソートできる<br />
* :%!sort -u で開いているファイル全体をユニークにソートできる<br />
== 関連項目 ==<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%85%A8%E4%BD%93%E3%82%92%E3%82%BD%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&diff=274
vimでファイル全体をソートする方法
2017-09-06T14:04:54Z
<p>Daemon: ページの作成:「vimなら編集中のファイル内(バッファ全体)を簡単にソートできます。 '''読み方''' ;sort:そーと __TOC__ == 概要 == ファイルの編...」</p>
<hr />
<div>[[vim]]なら編集中のファイル内(バッファ全体)を簡単にソートできます。<br />
<br />
'''読み方'''<br />
;sort:そーと<br />
__TOC__<br />
<br />
== 概要 ==<br />
ファイルの編集中に以下の悩みを持つことはありませんか?<br />
* ファイルの行をソートしたい<br />
* 編集中のファイルの重複を省きたい<br />
<br />
vim を終了し、sort コマンドを利用して、ソートしてから、もう一度 vim でファイルを開く、といった面倒な方法もありますが、もっとスマートな方法があります。<br />
== ファイル内をソートする方法 ==<br />
現在のファイル(バッファ)全体に対して、sort コマンドを実行する方法は以下の通りです。<br />
<syntaxhighlight lang="vim"><br />
:%!sort<br />
</syntaxhighlight><br />
* % (パーセント) は、現在のバッファを意味します。<br />
* '''!''' (エクスクラネーションマーク)は、システムのコマンドを実行することを意味します。<br />
<br />
さらに、ユニーク処理したいのであれば、 -u オプションを利用します。<br />
<syntaxhighlight lang="vim"><br />
:%!sort -u<br />
</syntaxhighlight><br />
== まとめ ==<br />
* %!sort で開いているファイル全体を簡単にソートできる<br />
* %!sort -u で開いているファイル全体をユニークにソートできる<br />
== 関連項目 ==<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&diff=273
メインページ
2017-09-06T13:58:07Z
<p>Daemon: /* Vimでホゲホゲする */</p>
<hr />
<div>== Vimに軽く入門する ==<br />
* [[vim]]とは<br />
* [[なぜvimを使うのか]]<br />
* [[これからはじめるvim]]<br />
* [[vimの便利な基本機能]]<br />
<br />
* [[vimの環境構築]]<br />
** [[vimをビルドする]]<br />
** [[vimのインストール]]<br />
** [[vimの設定ファイル]]<br />
** [[vimの設定をWindowsとLinuxとMacで共有する方法]]<br />
** [[Windowsにvimの環境を構築する方法]]<br />
<br />
* [[vimの検索と置換]]<br />
** [[vimのパターン検索と置換で知っておくべきこと]]<br />
<br />
* [[vimのPHP開発環境]]<br />
<br />
* [[キーストローク数の少なさを競うVimGolf]]<br />
<br />
* [[vimを終了する方法]]<br />
* [[vimでファイルを開く方法]]<br />
<br />
* [[vimで行を複製する方法]]<br />
* [[プログラミングに役立つvimのテクニック]]<br />
<br />
== Vimプラグインとスクリプト ==<br />
* [[vimのプラグイン管理]]<br />
* [[vimのプラグイン]]<br />
* [[vimスクリプト]]<br />
== Vimでホゲホゲする ==<br />
* [[vimでバイナリファイルを扱う]]<br />
* [[vimの起動が遅いときの対策]]<br />
* [[vimでコマンドを実行して新しいバッファに書き込む]]<br />
* [[vimで長い行を表示させる方法]]<br />
* [[vimで設定ファイルvimrcやプラグインを読み込まずに起動する方法]]<br />
* [[vimでMarkdownをプレビューする方法]]<br />
* [[gvimでShift InsertでS-Insertが入力されて貼り付けできない]]<br />
* [[vimでファイル全体をソートする方法]]<br />
<br />
== 統合開発環境としてのvim ==<br />
{{ide}}<br />
== 便利なプラグイン ==<br />
* [[vimプラグイン NERDTree ツリー型エクスプローラ]]<br />
== データベース ==<br />
* [[vimのdbext.vimでSQLデータベースを操作する方法]]<br />
== vimの新機能 ==<br />
* [[vim 8.0の新機能を解説します]]<br />
== neovim ==<br />
* [[neovim]]<br />
* [[neovimをFreeBSDにpkgコマンドでインストールする]]<br />
* [[neovim 0.1.1をビルドする]]<br />
== ブラウザとvi ==<br />
* [[ChromeやFirefoxでウェブページのtextareaをvi化するエクステンションwasavi]]</div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%81%AA%E3%81%9Cvim%E3%82%92%E4%BD%BF%E3%81%86%E3%81%AE%E3%81%8B&diff=272
なぜvimを使うのか
2017-06-18T14:15:17Z
<p>Daemon: /* 関連項目 */</p>
<hr />
<div>なぜ[[vim]]を使うのか、を説明します。むしろ、なぜ[[vim]]を使わないのか?vimというよりは、むしろ、なぜエディタを使うのか、という色が強いかもしれません。<br />
<br />
'''読み方'''<br />
;[[なぜvimを使うのか]]:なぜ、ぶいあいえむをつかうのか<br />
__TOC__<br />
<br />
== 概要 ==<br />
なぜ、エディターを使うのか?<br />
人は、なぜ、究極のバトルエディターズ [[vim]]に溺れるのか?<br />
<br />
エディタ戦争をはじめようという意図はありません。<br />
<br />
テキスト編集能力の補完をはじめましょう。<br />
== エディタとはなにか ==<br />
エディタ(editor)とは、テキストを編集することに利用されるソフトウェアです。Windowsで言えば、「メモ帳」(notepad.exe)さんもエディタです。<br />
<br />
== エディタと出会う ==<br />
「弘法は筆を選ばず」といいますが、「選ばなくても良い結果が出せる」ということであって、「弘法が筆を選べばもっと結果を出せる」と思っています。<br />
<br />
規制されている環境もございますが、多くの人は、「エディタを選ぶ自由」が与えられています。数多くのエディタが創られて、進化を続けています。<br />
<br />
今、使ってるエディタは、<br />
* それが最初から入っていた<br />
* 薦められた<br />
* たまたま出会った<br />
* 便利なものを探していた<br />
など、いろいろな出会いがあったかと思います。<br />
<br />
もし、今のエディタに不自由しているなら、最適なエディタを探してみるべきです。<br />
== なぜ人はエディタを選ぶのか ==<br />
エディタには、それぞれ、特徴があります。<br />
<br />
* 機能が最低限でシンプル<br />
* 機能が豊富<br />
* 拡張ができる<br />
* プラグインがいっぱいある<br />
* キーバインド(ショートカットキー)がステキ<br />
* 見た目がオシャレ<br />
* マルチプラットフォーム<br />
<br />
どれを選ぶかは、人それぞれでしょう。<br />
<br />
== 人は、何を選ぶべきなのか ==<br />
エディタ選択は、人生を左右すると言っても過言ではありません。<br />
エディタの持つ能力は、あなたの生産性を10にも100にもしてくれる存在です。<br />
<br />
自分にマッチしているものを選択するべきです。<br />
どういう意味で、マッチしているかというと、「自身の生産性」を爆発的に強化できる機能を有しているかです。<br />
<br />
キーバインド(ショートカットキー)であらゆる操作ができれば、マウスに手を持ち替えずに、操作ができます。「デバイスの持ち替え」の時間が省略できるということは、次の動作に、すぐに移れるということです。余計なことに時間を割く必要がありません。思考の中断を最小限にできます。<br />
<br />
文章を編集する、ということは、文章内を移動しなければなりません。「カーソルキーで移動する」よりも「効率的にカーソルを移動する」ことができれば、すぐに次のタスクに取り掛かれます。<br />
「カーソルキーを移動する」時間は、何も生み出しません。正しい、位置にカーソルをあわせることに、人は、意識が向いてしまっています。カーソルキーを移動することが目的ではなく、移動先で「才能を爆発」させることが目的であるのです。<br />
<br />
テキストでは、同じようなフレーズを使いまわすこともあります。<br />
一度、入力したものを2度もすべて入力しなおすのは、ナンセンスです。<br />
そこで活躍するのは、「入力補完機能」です。<br />
<br />
入力補完機能は、いろいろな実装があります。補完の例をいくつか挙げてみます。<br />
* すでに、入力されている文字列から補完<br />
* 辞書などから補完<br />
* プログラムならヘッダファイルから補完<br />
<br />
「入力補完」をするのは、なにが嬉しいのでしょうか?<br />
ガラケー、スマホやパソコンのIMEの補完機能を経験したことがある人なら、よくわかると思いますが、自分がすべて入力せずとも、選択するだけで、文章がある程度、構築できるわけです。それだけ、テキストの作成の時間が短縮できます。<br />
<br />
「入力補完」は、「時間の短縮」だけではなく、「正確に入力ができる」という恩恵があります。何度も同じ「単語」を入力していると、人は、どうしても「スペルミス」を犯しがちです。入力補完を使用すれば、正しいデータがさえあれば、ミスを減らせる可能性があります。また、補完候補で、複数、似たようなものが出てきて、スペルミスに<br />
気づくこともある、というそういうメリットもあります。<br />
== 高機能なエディタはプログラマ達だけのものではない ==<br />
「高機能なエディタ」は、ソフトウェアプログラマやシステムエンジニアだけのソフトウェアではありません。<br />
<br />
ドキュメントの編集、Wikiの編集、メールの編集、メモの編集、といったエンジニア以外の人たちにも恩恵があります。<br />
「エディタの拡張」機能を作ることは、非エンジニア向きではないかもしれませんが、世の中の好きな人達が、どんどん、「拡張機能」を作って、「便利な機能」を提供してくれます。「あなたが困っていること」は「他の人も困っている」訳です。<br />
<br />
特殊なマークアップ言語で文章を編集するときに、テキストでマークアップしなければならないとき、補完機能があれば、面倒なマークアップの入力を自動化できるわけです。マークアップのシンタックスを理解させれば、色付けして、マークアップを見やすくすることもできます。<br />
<br />
== エンジニアはなぜエディタが好きなのか ==<br />
「生産性が上がる」からでしょう。<br />
<br />
* 移動が自由自在<br />
* キーボードだけでほとんどオペレーションできる<br />
* 入力補完によって、編集スピードが加速する<br />
* プログラムのチェックを自動化する<br />
* 面倒なことは、エディタや拡張機能でバリバリ解決<br />
* アンドゥ・リドゥがいけてる<br />
* インクリメンタルサーチ<br />
* 正規表現による検索や置換<br />
* 外部コマンドとの連携<br />
* シンタックスハイライト<br />
* プラグインで拡張できる<br />
* プラグインを自分で作れる<br />
* レコーディング<br />
<br />
vi/vimを使う理由として、上記のことがあがるでしょう。<br />
== エディタは一生付き合うパートナー ==<br />
エディタに習熟するには、時間がかかります。<br />
<br />
vi/vimといった変態的なエディタは、キーバインドが特殊であるが故に、多少、とっつきにくいところもあります。「多少」といって、「多少じゃない」という声が聞こえてきそうです。<br />
たかだか、文章編集のために「本を読む」といった行為も必要になります。<br />
しかしながら、「その投資」があなたの将来を支えることになります。<br />
<br />
たいていのエディタは、「機能が豊富」であるため、すべてを知り尽くし、すべてを使いこなすのは、おそらく困難でしょう。しかし、恐れることはありません。「すべての機能」は、知らなくても、「効率化の弊害」にはなりません。自分に必要な機能から覚えていけばいいのです。<br />
<br />
世の中は、進化するため、ときどき、キャッチアップが必要になります。<br />
* エディタそのものが進化する<br />
* 拡張機能・プラグインの進化<br />
* 新しい拡張機能・プラグインの誕生<br />
<br />
上記のケースがあるため、ときどき、新しい情報を仕入れるべきです。仕入れることをやめた時点で、あなたは、時代遅れになってしまうでしょう。それぞれの「進化」は、あなたにとって、「些細なこと」であったり、「不要なこと」であるかもしれませんが、「あなたに多大な恩恵をもたらすもの」であることもあります。<br />
<br />
== そして、何を選択するのか ==<br />
多くのことは、<br />
* それ、vim で出来るよ<br />
* それ、Emacs で出来るよ<br />
というように、どのエディタでも同じようなことができるでしょう。<br />
<br />
== vimは貴方を補完する ==<br />
不自由だと思ってることは、「それ ooo で出来るよ」が当てはまることがあります。テキスト編集で不自由を感じていることのいくつかは、「それ vim で出来るよ」に該当するでしょう。<br />
* vim のデフォルトの機能が補完(入力補完という意味ではなく)してくれる<br />
* vim プラグイン([[vimスクリプト]])を誰かが作ってくれている<br />
<br />
足りない機能は、自分で作り、自己補完することが可能です。<br />
== vimはデフォルトの設定では使えない ==<br />
おそらく、vimをデフォルトの設定で使うのは、無策過ぎるかもしれません。自分にあった形で、最適化が必要です。間違いなく、他人の[[vim]]は、使い物になりません。なぜなら、それは、その人に最適化されているからです。<br />
<br />
だから、あなたは、 .vimrc を持ち歩くことになるでしょう。<br />
* クラウドストレージ (例: Dropbox)<br />
* ソースコード管理システム (例: github)<br />
<br />
== vimは、どこでも使える ==<br />
vimは、どこでも使えます。<br />
* Unix ( *BSD / Linux )<br />
* Windows<br />
* Mac OS<br />
<br />
vimは、なんでも編集できます。<br />
* Web<br />
* メール<br />
* メモ<br />
* プログラム<br />
<br />
== なぜvimを使うのか ==<br />
もう、ここまできたら、[[なぜvimを使うのか]]、という問に答えが出ているのではないでしょうか?<br />
生産性を上げるため、貴方を補完するためのエディタの魅力が理解できたはずです。<br />
<br />
[[vim]]を使う理由をあげたら、きりがありません。<br />
<br />
* [[vim]]は、マルチプラットフォーム(詳しくは[[vim]]をお読みください)<br />
* [[vim]]を補完する豊かな[[vimのプラグイン]]<br />
* [[vim]]を拡張できる[[vimスクリプト]]<br />
* [[vim]]は、統合開発環境でもある([[vimのPHP開発環境]]をお読みください)<br />
* [[vim]]は、すべてを編集する<br />
** あらゆるテキストファイル<br />
** メール<br />
** Wiki<br />
* ホームポジションであらゆることができる<br />
* ユニークなキーバインド<br />
* [[vim]]は画面分割、タブ機能がある<br />
* パワフルな検索と置換(詳しくは[[vimのパターン検索と置換で知っておくべきこと]]をお読みください)<br />
* 豊富なハイライトシンタックス<br />
* ビジュアルモード<br />
* レジスタ<br />
* 繰り返し作業に強い機能<br />
* レコーディング機能<br />
* 素敵なアンドゥ(undo)とリドゥ(redo)<br />
<br />
[[vim]]は、貴方の編集ライフを書換える事が可能です。<br />
<br />
== 関連項目 ==<br />
* [[vim]]<br />
* [[vimの環境構築]]<br />
* [[これからはじめるvim]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&diff=271
メインページ
2017-06-18T14:14:44Z
<p>Daemon: /* Vimに軽く入門する */</p>
<hr />
<div>== Vimに軽く入門する ==<br />
* [[vim]]とは<br />
* [[なぜvimを使うのか]]<br />
* [[これからはじめるvim]]<br />
* [[vimの便利な基本機能]]<br />
<br />
* [[vimの環境構築]]<br />
** [[vimをビルドする]]<br />
** [[vimのインストール]]<br />
** [[vimの設定ファイル]]<br />
** [[vimの設定をWindowsとLinuxとMacで共有する方法]]<br />
** [[Windowsにvimの環境を構築する方法]]<br />
<br />
* [[vimの検索と置換]]<br />
** [[vimのパターン検索と置換で知っておくべきこと]]<br />
<br />
* [[vimのPHP開発環境]]<br />
<br />
* [[キーストローク数の少なさを競うVimGolf]]<br />
<br />
* [[vimを終了する方法]]<br />
* [[vimでファイルを開く方法]]<br />
<br />
* [[vimで行を複製する方法]]<br />
* [[プログラミングに役立つvimのテクニック]]<br />
<br />
== Vimプラグインとスクリプト ==<br />
* [[vimのプラグイン管理]]<br />
* [[vimのプラグイン]]<br />
* [[vimスクリプト]]<br />
== Vimでホゲホゲする ==<br />
* [[vimでバイナリファイルを扱う]]<br />
* [[vimの起動が遅いときの対策]]<br />
* [[vimでコマンドを実行して新しいバッファに書き込む]]<br />
* [[vimで長い行を表示させる方法]]<br />
* [[vimで設定ファイルvimrcやプラグインを読み込まずに起動する方法]]<br />
* [[vimでMarkdownをプレビューする方法]]<br />
* [[gvimでShift InsertでS-Insertが入力されて貼り付けできない]]<br />
== 統合開発環境としてのvim ==<br />
{{ide}}<br />
== 便利なプラグイン ==<br />
* [[vimプラグイン NERDTree ツリー型エクスプローラ]]<br />
== データベース ==<br />
* [[vimのdbext.vimでSQLデータベースを操作する方法]]<br />
== vimの新機能 ==<br />
* [[vim 8.0の新機能を解説します]]<br />
== neovim ==<br />
* [[neovim]]<br />
* [[neovimをFreeBSDにpkgコマンドでインストールする]]<br />
* [[neovim 0.1.1をビルドする]]<br />
== ブラウザとvi ==<br />
* [[ChromeやFirefoxでウェブページのtextareaをvi化するエクステンションwasavi]]</div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&diff=270
vimの設定ファイル
2017-06-18T14:12:39Z
<p>Daemon: </p>
<hr />
<div>[[vimの設定ファイル]]には、いくつか種類があります。Mac/Unix(Linux,FreeBSDなど)/Windowsでは、個人用設定ファイルとして.vimrc, .gvimrc があります。Windowsでは _vimrc, _gvimrc が使われる(使われていた)こともあります。vimrc, gvimrc は、全ユーザ共有設定として使われます。また、個人の[[vimスクリプト]]は、.vimの下に置かれます。<br />
<br />
'''読み方'''<br />
;[[vimの設定ファイル]]:ぶいあいえむ の せっていふぁいる<br />
__TOC__<br />
<br />
== 概要 ==<br />
Windows の方言は、Windows 7 以降のOSでは、関係ないでしょう。<br />
古い Windows は、 .vimrc などのドットファイル(ドットではじまるファイル)が作成できない(しにくい?)問題があり、_vimrc, _vim, _gvimrc などを使用していました。今でも、作成しにくいところもありますが、DOS窓(cmd.exe)でmkdir _vim で作成したり、.vimrc を scp でもってきたりしたりするのは、まったく問題ないので、.vimrc, .gvimrc, .vim で使用しています。<br />
== グローバルな設定ファイルが置いて場所 ==<br />
;FreeBSD:/usr/local/share/vim/vim74<br />
;Windows:KaoriYa版のVimの場合gvim.exe のディレクトリとその配下のディレクトリ<br />
== 個人の設定ファイルを置く場所 ==<br />
.vimrc, .gvimrc, .vim などは、以下のディレクトリに設置します。<br />
;Windows 7: C:\Users\あなたのディレクトリ\<br />
;Unix: /home/あなたのディレクトリ/<br />
;Mac: /Users/あなたのディレクトリ/<br />
== 設定ファイルとディレクトリの種類 ==<br />
{|class="wikitable"<br />
|+ 設定ファイル<br />
! 設定ファイル<br />
! Windowsの方言<br />
! 説明<br />
|-<br />
| vimrc<br />
| <br />
| 全ユーザ共通の設定ファイル<br />
|-<br />
| gvimrc<br />
| <br />
| GUI部分の全ユーザ共通の設定ファイル<br />
|-<br />
| .vimrc<br />
| _vimrc<br />
| ユーザ固有の設定<br />
|-<br />
| .gvimrc<br />
| _gvimrc<br />
| GUI部分のユーザ固有の設定<br />
|-<br />
| .vim<br />
| _vim<br />
| ユーザ用スクリプト格納ディレクトリ<br />
|}<br />
== サンプルの設定ファイル ==<br />
サンプルの設定ファイルが用意されています。<br />
;FreeBSD:/usr/local/share/vim/vim74/vimrc_example.vim<br />
== 設定ファイルの優先順位 ==<br />
最初に見つかったものが読み込まれます。<br />
=== Windows ===<br />
# $HOME/_vimrc<br />
# $HOME/.vimrc<br />
# $VIM/_vimrc<br />
# $VIM/.vimrc<br />
=== Linux ===<br />
# $HOME/_vimrc<br />
# $HOME/.vimrc<br />
== ランタイムパス ==<br />
プラグインやシンタックス(syntax)の設定ファイルは、 runtime (ランタイム)ディレクトリに格納します。<br />
vimは、runtimepath オプションのディレクトリを読み込みます。<br />
ランタイムパスは、以下のコマンドで確認できます。<br />
<syntaxhighlight lang="vim"><br />
:set runtimepath<br />
</syntaxhighlight><br />
== マルチプラットフォームで設定ファイルを使用する ==<br />
OSの違いや[[vim]]のビルドオプションの違いを吸収する方法を[[vimの設定をWindowsとLinuxとMacで共有する方法]]で紹介します。<br />
== 関連項目 ==<br />
* [[vimの環境構築]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&diff=269
vimのインストール
2017-06-18T14:12:20Z
<p>Daemon: </p>
<hr />
<div>究極のテキストエディタ [[vim]]をインストールする方法を説明します。対称となるプラットフォーム(OS)は、Mac, Windows, Linux, FreeBSD です。<br />
<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]は、様々なOSで利用できます。<br />
* Windows<br />
* FreeBSD<br />
* Linux<br />
* Mac OS<br />
== Windows ==<br />
Kaoriya Vimをダウンロードします。<br />
http://www.kaoriya.net/software/vim/<br />
<br />
[[Windowsにvimの環境を構築する方法]]で詳しく解説しています。<br />
== Mac OS ==<br />
MacVimをダウンロードし、インストールします。<br />
https://code.google.com/p/macvim/<br />
== Ubuntu ==<br />
<syntaxhighlight lang="bash"><br />
% sudo apt-get install vim<br />
</syntaxhighlight><br />
<html><br />
<iframe width="420" height="315" src="//www.youtube.com/embed/dOSfGkZ1zrQ" frameborder="0" allowfullscreen></iframe><br />
</html><br />
== FreeBSD ==<br />
<syntaxhighlight lang="bash"><br />
% sudo pkg install vim<br />
</syntaxhighlight><br />
== CentOS ==<br />
<syntaxhighlight lang="bash"><br />
% sudo yum install vim<br />
</syntaxhighlight><br />
== インストールの後にすること ==<br />
* [[vimの設定ファイル]]<br />
<br />
== 関連項目 ==<br />
* [[vimの設定ファイル]]<br />
* [[Windowsにvimの環境を構築する方法]]<br />
* [[vimの環境構築]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim&diff=268
vim
2017-06-18T14:12:05Z
<p>Daemon: </p>
<hr />
<div>[[vim]]とは、Vi IMProved の略で、プログラマテキストエディタ(text editor)です。viを<s>魔改造</s>究極進化させた、Emacsと双璧を成す、究極のエディタの1つです。<br />
<br />
'''読み方'''<br />
;[[vim]]:ぶいあいえむ、びむ<br />
;Vi IMProved:ぶいあい いんぷるーぶ<br />
;text editor:てきすとえでぃた<br />
__TOC__<br />
<br />
== 概要 ==<br />
vi/vimは、ノーマルモード、インサートモードなど、いくつものモードを持つ<s>変態</s>素敵なエディタです。このモードは、非常に特徴的でしょう。<br />
非常に少ないタイプで大きな効果を与えられるキーバインド/機能が魅力です。<br />
<br />
[[vim]]は、マルチプラットフォームなアプリケーションです。<br />
* Windows<br />
* Unix ( *BSD, Linux )<br />
* Mac<br />
などの環境で使用できます。<br />
<br />
[[vim]]は、[[vimスクリプト]]と呼ばれるスクリプト言語を持ち、[[vimスクリプト]]で[[vimのプラグイン]]とよばれるプラグインを実装し、[[vim]]の機能を拡張できます。<br />
<br />
もし、貴方がvi、もしくは、[[vim]]を使用しているにも関わらず、メモ帳程度、もしくは、ちょっと毛が生えた程度のものという認識で vi/vim を使用しているのなら、 [[なぜvimを使うのか]] を読んでみてください。[[vim]]は、ちょっとした IDE (統合開発環境)になりますので、[[vimのPHP開発環境]]をご参照ください。<br />
<br />
== gvimとは ==<br />
[[gvim]]は、[[vim]]のウィンドウモード版(GUI版)です。ターミナルではなく、WindowsやX(Xorg)な環境のウィンドウアプリケーションで使用します。<br />
<br />
== インストール ==<br />
* [[vimのインストール]]<br />
== vimのコマンドラインオプション ==<br />
<syntaxhighlight lang="bash"><br />
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 20 2014 14:50:31)<br />
<br />
使用法: vim [引数] [ファイル..] あるファイルを編集する<br />
もしくは: vim [引数] - 標準入力からテキストを読込む<br />
もしくは: vim [引数] -t タグ タグが定義されたところから編集する<br />
もしくは: vim [引数] -q [errorfile] 最初のエラーで編集する<br />
<br />
引数:<br />
-- このあとにはファイル名だけ<br />
-g GUIで起動する ("gvim" と同じ)<br />
-f or --nofork フォアグラウンド: GUIを始めるときにforkしない<br />
-v Viモード ("vi" と同じ)<br />
-e Exモード ("ex" と同じ)<br />
-E 改良Exモード<br />
-s サイレント(バッチ)モード ("ex" 専用)<br />
-d 差分モード ("vidiff" と同じ)<br />
-y イージーモード ("evim" と同じ, モード無)<br />
-R 読込専用モード ("view" と同じ)<br />
-Z 制限モード ("rvim" と同じ)<br />
-m 変更 (ファイル保存時) をできないようにする<br />
-M テキストの編集を行なえないようにする<br />
-b バイナリモード<br />
-l Lispモード<br />
-C Vi互換モード: 'compatible'<br />
-N Vi非互換モード: 'nocompatible<br />
-V[N][fname] ログ出力設定 [レベル N] [ログファイル名 fname]<br />
-D デバッグモード<br />
-n スワップファイルを使用せずメモリだけ<br />
-r スワップファイルを列挙し終了<br />
-r (ファイル名) クラッシュしたセッションを復帰<br />
-L -rと同じ<br />
-A アラビア語モードで起動する<br />
-H ヘブライ語モードで起動する<br />
-F ペルシア語モードで起動する<br />
-T <terminal> 端末を <terminal> に設定する<br />
-u <vimrc> .vimrcの代わりに <vimrc> を使う<br />
-U <gvimrc> .gvimrcの代わりに <gvimrc> を使う<br />
--noplugin プラグインスクリプトをロードしない<br />
-p[N] N 個タブページを開く(省略値: ファイルにつき1個)<br />
-o[N] N 個ウィンドウを開く(省略値: ファイルにつき1個)<br />
-O[N] -oと同じだが垂直分割<br />
+ ファイルの最後からはじめる<br />
+<lnum> <lnum> 行からはじめる<br />
--cmd <command> vimrcをロードする前に <command> を実行する<br />
-c <command> 最初のファイルをロード後 <command> を実行する<br />
-S <session> 最初のファイルをロード後ファイル <session> を取込む<br />
-s <scriptin> ファイル <scriptin> からノーマルコマンドを読込む<br />
-w <scriptout> 入力した全コマンドをファイル <scriptout> に追加する<br />
-W <scriptout> 入力した全コマンドをファイル <scriptout> に保存する<br />
-x 暗号化されたファイルを編集する<br />
-X Xサーバに接続しない<br />
--remote <files> 可能ならばVimサーバで <files> を編集する<br />
--remote-silent <files> 同上, サーバが無くても警告文を出力しない<br />
--remote-wait <files> --remote後 ファイルの編集が終わるのを待つ<br />
--remote-wait-silent <files> 同上, サーバが無くても警告文を出力しない<br />
--remote-tab[-wait][-silent] <files> --remoteでファイル1つにつき1つのタブページを開く<br />
--remote-send <keys> Vimサーバに <keys> を送信して終了する<br />
--remote-expr <expr> サーバで <expr> を実行して結果を表示する<br />
--serverlist Vimサーバ名の一覧を表示して終了する<br />
--servername <name> Vimサーバ <name> に送信/名前設定する<br />
--startuptime <file> 起動にかかった時間の詳細を <file> へ出力する<br />
-i <viminfo> .viminfoの代わりに <viminfo> を使う<br />
-h or --help ヘルプ(このメッセージ)を表示し終了する<br />
--version バージョン情報を表示し終了する<br />
<br />
gvimによって解釈される引数(GTK+バージョン):<br />
-font <font> テキスト表示に <font> を使う(同義: -fn)<br />
-geometry <geom> 初期配置に <geom> を使う(同義: -geom)<br />
-reverse 反転映像を使用する(同義: -rv)<br />
-display <display> <display> でvimを実行する(同義: --display)<br />
--role <role> メインウィンドウを識別する一意な役割(role)を設定する<br />
--socketid <xid> 異なるGTK widgetでVimを開く<br />
--echo-wid ウィンドウIDを標準出力に出力する<br />
</syntaxhighlight><br />
== 関連項目 ==<br />
* [[なぜvimを使うのか]]<br />
* [[vimの環境構築]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%81%AA%E3%81%9Cvim%E3%82%92%E4%BD%BF%E3%81%86%E3%81%AE%E3%81%8B&diff=267
なぜvimを使うのか
2017-06-18T14:11:44Z
<p>Daemon: </p>
<hr />
<div>なぜ[[vim]]を使うのか、を説明します。むしろ、なぜ[[vim]]を使わないのか?vimというよりは、むしろ、なぜエディタを使うのか、という色が強いかもしれません。<br />
<br />
'''読み方'''<br />
;[[なぜvimを使うのか]]:なぜ、ぶいあいえむをつかうのか<br />
__TOC__<br />
<br />
== 概要 ==<br />
なぜ、エディターを使うのか?<br />
人は、なぜ、究極のバトルエディターズ [[vim]]に溺れるのか?<br />
<br />
エディタ戦争をはじめようという意図はありません。<br />
<br />
テキスト編集能力の補完をはじめましょう。<br />
== エディタとはなにか ==<br />
エディタ(editor)とは、テキストを編集することに利用されるソフトウェアです。Windowsで言えば、「メモ帳」(notepad.exe)さんもエディタです。<br />
<br />
== エディタと出会う ==<br />
「弘法は筆を選ばず」といいますが、「選ばなくても良い結果が出せる」ということであって、「弘法が筆を選べばもっと結果を出せる」と思っています。<br />
<br />
規制されている環境もございますが、多くの人は、「エディタを選ぶ自由」が与えられています。数多くのエディタが創られて、進化を続けています。<br />
<br />
今、使ってるエディタは、<br />
* それが最初から入っていた<br />
* 薦められた<br />
* たまたま出会った<br />
* 便利なものを探していた<br />
など、いろいろな出会いがあったかと思います。<br />
<br />
もし、今のエディタに不自由しているなら、最適なエディタを探してみるべきです。<br />
== なぜ人はエディタを選ぶのか ==<br />
エディタには、それぞれ、特徴があります。<br />
<br />
* 機能が最低限でシンプル<br />
* 機能が豊富<br />
* 拡張ができる<br />
* プラグインがいっぱいある<br />
* キーバインド(ショートカットキー)がステキ<br />
* 見た目がオシャレ<br />
* マルチプラットフォーム<br />
<br />
どれを選ぶかは、人それぞれでしょう。<br />
<br />
== 人は、何を選ぶべきなのか ==<br />
エディタ選択は、人生を左右すると言っても過言ではありません。<br />
エディタの持つ能力は、あなたの生産性を10にも100にもしてくれる存在です。<br />
<br />
自分にマッチしているものを選択するべきです。<br />
どういう意味で、マッチしているかというと、「自身の生産性」を爆発的に強化できる機能を有しているかです。<br />
<br />
キーバインド(ショートカットキー)であらゆる操作ができれば、マウスに手を持ち替えずに、操作ができます。「デバイスの持ち替え」の時間が省略できるということは、次の動作に、すぐに移れるということです。余計なことに時間を割く必要がありません。思考の中断を最小限にできます。<br />
<br />
文章を編集する、ということは、文章内を移動しなければなりません。「カーソルキーで移動する」よりも「効率的にカーソルを移動する」ことができれば、すぐに次のタスクに取り掛かれます。<br />
「カーソルキーを移動する」時間は、何も生み出しません。正しい、位置にカーソルをあわせることに、人は、意識が向いてしまっています。カーソルキーを移動することが目的ではなく、移動先で「才能を爆発」させることが目的であるのです。<br />
<br />
テキストでは、同じようなフレーズを使いまわすこともあります。<br />
一度、入力したものを2度もすべて入力しなおすのは、ナンセンスです。<br />
そこで活躍するのは、「入力補完機能」です。<br />
<br />
入力補完機能は、いろいろな実装があります。補完の例をいくつか挙げてみます。<br />
* すでに、入力されている文字列から補完<br />
* 辞書などから補完<br />
* プログラムならヘッダファイルから補完<br />
<br />
「入力補完」をするのは、なにが嬉しいのでしょうか?<br />
ガラケー、スマホやパソコンのIMEの補完機能を経験したことがある人なら、よくわかると思いますが、自分がすべて入力せずとも、選択するだけで、文章がある程度、構築できるわけです。それだけ、テキストの作成の時間が短縮できます。<br />
<br />
「入力補完」は、「時間の短縮」だけではなく、「正確に入力ができる」という恩恵があります。何度も同じ「単語」を入力していると、人は、どうしても「スペルミス」を犯しがちです。入力補完を使用すれば、正しいデータがさえあれば、ミスを減らせる可能性があります。また、補完候補で、複数、似たようなものが出てきて、スペルミスに<br />
気づくこともある、というそういうメリットもあります。<br />
== 高機能なエディタはプログラマ達だけのものではない ==<br />
「高機能なエディタ」は、ソフトウェアプログラマやシステムエンジニアだけのソフトウェアではありません。<br />
<br />
ドキュメントの編集、Wikiの編集、メールの編集、メモの編集、といったエンジニア以外の人たちにも恩恵があります。<br />
「エディタの拡張」機能を作ることは、非エンジニア向きではないかもしれませんが、世の中の好きな人達が、どんどん、「拡張機能」を作って、「便利な機能」を提供してくれます。「あなたが困っていること」は「他の人も困っている」訳です。<br />
<br />
特殊なマークアップ言語で文章を編集するときに、テキストでマークアップしなければならないとき、補完機能があれば、面倒なマークアップの入力を自動化できるわけです。マークアップのシンタックスを理解させれば、色付けして、マークアップを見やすくすることもできます。<br />
<br />
== エンジニアはなぜエディタが好きなのか ==<br />
「生産性が上がる」からでしょう。<br />
<br />
* 移動が自由自在<br />
* キーボードだけでほとんどオペレーションできる<br />
* 入力補完によって、編集スピードが加速する<br />
* プログラムのチェックを自動化する<br />
* 面倒なことは、エディタや拡張機能でバリバリ解決<br />
* アンドゥ・リドゥがいけてる<br />
* インクリメンタルサーチ<br />
* 正規表現による検索や置換<br />
* 外部コマンドとの連携<br />
* シンタックスハイライト<br />
* プラグインで拡張できる<br />
* プラグインを自分で作れる<br />
* レコーディング<br />
<br />
vi/vimを使う理由として、上記のことがあがるでしょう。<br />
== エディタは一生付き合うパートナー ==<br />
エディタに習熟するには、時間がかかります。<br />
<br />
vi/vimといった変態的なエディタは、キーバインドが特殊であるが故に、多少、とっつきにくいところもあります。「多少」といって、「多少じゃない」という声が聞こえてきそうです。<br />
たかだか、文章編集のために「本を読む」といった行為も必要になります。<br />
しかしながら、「その投資」があなたの将来を支えることになります。<br />
<br />
たいていのエディタは、「機能が豊富」であるため、すべてを知り尽くし、すべてを使いこなすのは、おそらく困難でしょう。しかし、恐れることはありません。「すべての機能」は、知らなくても、「効率化の弊害」にはなりません。自分に必要な機能から覚えていけばいいのです。<br />
<br />
世の中は、進化するため、ときどき、キャッチアップが必要になります。<br />
* エディタそのものが進化する<br />
* 拡張機能・プラグインの進化<br />
* 新しい拡張機能・プラグインの誕生<br />
<br />
上記のケースがあるため、ときどき、新しい情報を仕入れるべきです。仕入れることをやめた時点で、あなたは、時代遅れになってしまうでしょう。それぞれの「進化」は、あなたにとって、「些細なこと」であったり、「不要なこと」であるかもしれませんが、「あなたに多大な恩恵をもたらすもの」であることもあります。<br />
<br />
== そして、何を選択するのか ==<br />
多くのことは、<br />
* それ、vim で出来るよ<br />
* それ、Emacs で出来るよ<br />
というように、どのエディタでも同じようなことができるでしょう。<br />
<br />
== vimは貴方を補完する ==<br />
不自由だと思ってることは、「それ ooo で出来るよ」が当てはまることがあります。テキスト編集で不自由を感じていることのいくつかは、「それ vim で出来るよ」に該当するでしょう。<br />
* vim のデフォルトの機能が補完(入力補完という意味ではなく)してくれる<br />
* vim プラグイン([[vimスクリプト]])を誰かが作ってくれている<br />
<br />
足りない機能は、自分で作り、自己補完することが可能です。<br />
== vimはデフォルトの設定では使えない ==<br />
おそらく、vimをデフォルトの設定で使うのは、無策過ぎるかもしれません。自分にあった形で、最適化が必要です。間違いなく、他人の[[vim]]は、使い物になりません。なぜなら、それは、その人に最適化されているからです。<br />
<br />
だから、あなたは、 .vimrc を持ち歩くことになるでしょう。<br />
* クラウドストレージ (例: Dropbox)<br />
* ソースコード管理システム (例: github)<br />
<br />
== vimは、どこでも使える ==<br />
vimは、どこでも使えます。<br />
* Unix ( *BSD / Linux )<br />
* Windows<br />
* Mac OS<br />
<br />
vimは、なんでも編集できます。<br />
* Web<br />
* メール<br />
* メモ<br />
* プログラム<br />
<br />
== なぜvimを使うのか ==<br />
もう、ここまできたら、[[なぜvimを使うのか]]、という問に答えが出ているのではないでしょうか?<br />
生産性を上げるため、貴方を補完するためのエディタの魅力が理解できたはずです。<br />
<br />
[[vim]]を使う理由をあげたら、きりがありません。<br />
<br />
* [[vim]]は、マルチプラットフォーム(詳しくは[[vim]]をお読みください)<br />
* [[vim]]を補完する豊かな[[vimのプラグイン]]<br />
* [[vim]]を拡張できる[[vimスクリプト]]<br />
* [[vim]]は、統合開発環境でもある([[vimのPHP開発環境]]をお読みください)<br />
* [[vim]]は、すべてを編集する<br />
** あらゆるテキストファイル<br />
** メール<br />
** Wiki<br />
* ホームポジションであらゆることができる<br />
* ユニークなキーバインド<br />
* [[vim]]は画面分割、タブ機能がある<br />
* パワフルな検索と置換(詳しくは[[vimのパターン検索と置換で知っておくべきこと]]をお読みください)<br />
* 豊富なハイライトシンタックス<br />
* ビジュアルモード<br />
* レジスタ<br />
* 繰り返し作業に強い機能<br />
* レコーディング機能<br />
* 素敵なアンドゥ(undo)とリドゥ(redo)<br />
<br />
[[vim]]は、貴方の編集ライフを書換える事が可能です。<br />
<br />
== 関連項目 ==<br />
* [[vim]]<br />
* [[vimの環境構築]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim&diff=266
vim
2017-06-18T14:11:15Z
<p>Daemon: </p>
<hr />
<div>[[vim]]とは、Vi IMProved の略で、プログラマテキストエディタ(text editor)です。viを<s>魔改造</s>究極進化させた、Emacsと双璧を成す、究極のエディタの1つです。<br />
<br />
'''読み方'''<br />
;[[vim]]:ぶいあいえむ、びむ<br />
;Vi IMProved:ぶいあい いんぷるーぶ<br />
;text editor:てきすとえでぃた<br />
__TOC__<br />
<br />
== 概要 ==<br />
vi/vimは、ノーマルモード、インサートモードなど、いくつものモードを持つ<s>変態</s>素敵なエディタです。このモードは、非常に特徴的でしょう。<br />
非常に少ないタイプで大きな効果を与えられるキーバインド/機能が魅力です。<br />
<br />
[[vim]]は、マルチプラットフォームなアプリケーションです。<br />
* Windows<br />
* Unix ( *BSD, Linux )<br />
* Mac<br />
などの環境で使用できます。<br />
<br />
[[vim]]は、[[vimスクリプト]]と呼ばれるスクリプト言語を持ち、[[vimスクリプト]]で[[vimのプラグイン]]とよばれるプラグインを実装し、[[vim]]の機能を拡張できます。<br />
<br />
もし、貴方がvi、もしくは、[[vim]]を使用しているにも関わらず、メモ帳程度、もしくは、ちょっと毛が生えた程度のものという認識で vi/vim を使用しているのなら、 [[なぜvimを使うのか]] を読んでみてください。[[vim]]は、ちょっとした IDE (統合開発環境)になりますので、[[vimのPHP開発環境]]をご参照ください。<br />
<br />
== gvimとは ==<br />
[[gvim]]は、[[vim]]のウィンドウモード版(GUI版)です。ターミナルではなく、WindowsやX(Xorg)な環境のウィンドウアプリケーションで使用します。<br />
<br />
== インストール ==<br />
* [[vimのインストール]]<br />
== vimのコマンドラインオプション ==<br />
<syntaxhighlight lang="bash"><br />
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 20 2014 14:50:31)<br />
<br />
使用法: vim [引数] [ファイル..] あるファイルを編集する<br />
もしくは: vim [引数] - 標準入力からテキストを読込む<br />
もしくは: vim [引数] -t タグ タグが定義されたところから編集する<br />
もしくは: vim [引数] -q [errorfile] 最初のエラーで編集する<br />
<br />
引数:<br />
-- このあとにはファイル名だけ<br />
-g GUIで起動する ("gvim" と同じ)<br />
-f or --nofork フォアグラウンド: GUIを始めるときにforkしない<br />
-v Viモード ("vi" と同じ)<br />
-e Exモード ("ex" と同じ)<br />
-E 改良Exモード<br />
-s サイレント(バッチ)モード ("ex" 専用)<br />
-d 差分モード ("vidiff" と同じ)<br />
-y イージーモード ("evim" と同じ, モード無)<br />
-R 読込専用モード ("view" と同じ)<br />
-Z 制限モード ("rvim" と同じ)<br />
-m 変更 (ファイル保存時) をできないようにする<br />
-M テキストの編集を行なえないようにする<br />
-b バイナリモード<br />
-l Lispモード<br />
-C Vi互換モード: 'compatible'<br />
-N Vi非互換モード: 'nocompatible<br />
-V[N][fname] ログ出力設定 [レベル N] [ログファイル名 fname]<br />
-D デバッグモード<br />
-n スワップファイルを使用せずメモリだけ<br />
-r スワップファイルを列挙し終了<br />
-r (ファイル名) クラッシュしたセッションを復帰<br />
-L -rと同じ<br />
-A アラビア語モードで起動する<br />
-H ヘブライ語モードで起動する<br />
-F ペルシア語モードで起動する<br />
-T <terminal> 端末を <terminal> に設定する<br />
-u <vimrc> .vimrcの代わりに <vimrc> を使う<br />
-U <gvimrc> .gvimrcの代わりに <gvimrc> を使う<br />
--noplugin プラグインスクリプトをロードしない<br />
-p[N] N 個タブページを開く(省略値: ファイルにつき1個)<br />
-o[N] N 個ウィンドウを開く(省略値: ファイルにつき1個)<br />
-O[N] -oと同じだが垂直分割<br />
+ ファイルの最後からはじめる<br />
+<lnum> <lnum> 行からはじめる<br />
--cmd <command> vimrcをロードする前に <command> を実行する<br />
-c <command> 最初のファイルをロード後 <command> を実行する<br />
-S <session> 最初のファイルをロード後ファイル <session> を取込む<br />
-s <scriptin> ファイル <scriptin> からノーマルコマンドを読込む<br />
-w <scriptout> 入力した全コマンドをファイル <scriptout> に追加する<br />
-W <scriptout> 入力した全コマンドをファイル <scriptout> に保存する<br />
-x 暗号化されたファイルを編集する<br />
-X Xサーバに接続しない<br />
--remote <files> 可能ならばVimサーバで <files> を編集する<br />
--remote-silent <files> 同上, サーバが無くても警告文を出力しない<br />
--remote-wait <files> --remote後 ファイルの編集が終わるのを待つ<br />
--remote-wait-silent <files> 同上, サーバが無くても警告文を出力しない<br />
--remote-tab[-wait][-silent] <files> --remoteでファイル1つにつき1つのタブページを開く<br />
--remote-send <keys> Vimサーバに <keys> を送信して終了する<br />
--remote-expr <expr> サーバで <expr> を実行して結果を表示する<br />
--serverlist Vimサーバ名の一覧を表示して終了する<br />
--servername <name> Vimサーバ <name> に送信/名前設定する<br />
--startuptime <file> 起動にかかった時間の詳細を <file> へ出力する<br />
-i <viminfo> .viminfoの代わりに <viminfo> を使う<br />
-h or --help ヘルプ(このメッセージ)を表示し終了する<br />
--version バージョン情報を表示し終了する<br />
<br />
gvimによって解釈される引数(GTK+バージョン):<br />
-font <font> テキスト表示に <font> を使う(同義: -fn)<br />
-geometry <geom> 初期配置に <geom> を使う(同義: -geom)<br />
-reverse 反転映像を使用する(同義: -rv)<br />
-display <display> <display> でvimを実行する(同義: --display)<br />
--role <role> メインウィンドウを識別する一意な役割(role)を設定する<br />
--socketid <xid> 異なるGTK widgetでVimを開く<br />
--echo-wid ウィンドウIDを標準出力に出力する<br />
</syntaxhighlight><br />
== 関連項目 ==<br />
* [[なぜvimを使うのか]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89&diff=265
vimの環境構築
2017-06-18T14:10:08Z
<p>Daemon: ページの作成:「vimを使うためやメンテナンスのために必要なことをまとめました。 '''読み方''' ;vim:ぶいあいえむ __TOC__ == 概要 == vim...」</p>
<hr />
<div>[[vim]]を使うためやメンテナンスのために必要なことをまとめました。<br />
<br />
'''読み方'''<br />
;[[vim]]:ぶいあいえむ<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]のビルド、インストール、アップデート、設定などを紹介します。<br />
== インストールとアップデート ==<br />
* [[vimをビルドする]]<br />
* [[vimのインストール]]<br />
* [[vimの設定ファイル]]<br />
* [[Windowsにvimの環境を構築する方法]]<br />
* [[WindowsのKaoriYa版vimをオンラインアップデートする方法]]<br />
== vimを復数環境で利用する ==<br />
* [[vimの設定をWindowsとLinuxとMacで共有する方法]]<br />
== vimをIDEとして使う ==<br />
* [[vimのPHP開発環境]]<br />
== 関連項目 ==<br />
* [[これからはじめるvim]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&diff=264
メインページ
2017-06-18T14:06:41Z
<p>Daemon: /* Vimに軽く入門する */</p>
<hr />
<div>== Vimに軽く入門する ==<br />
{{basic}}<br />
<br />
* [[vimの環境構築]]<br />
<br />
* [[キーストローク数の少なさを競うVimGolf]]<br />
<br />
* [[vimを終了する方法]]<br />
* [[vimでファイルを開く方法]]<br />
<br />
* [[vimの検索と置換]]<br />
<br />
<br />
* [[vimで行を複製する方法]]<br />
* [[プログラミングに役立つvimのテクニック]]<br />
<br />
== Vimプラグインとスクリプト ==<br />
* [[vimのプラグイン管理]]<br />
* [[vimのプラグイン]]<br />
* [[vimスクリプト]]<br />
== Vimでホゲホゲする ==<br />
* [[vimでバイナリファイルを扱う]]<br />
* [[vimの起動が遅いときの対策]]<br />
* [[vimでコマンドを実行して新しいバッファに書き込む]]<br />
* [[vimで長い行を表示させる方法]]<br />
* [[vimで設定ファイルvimrcやプラグインを読み込まずに起動する方法]]<br />
* [[vimでMarkdownをプレビューする方法]]<br />
* [[gvimでShift InsertでS-Insertが入力されて貼り付けできない]]<br />
== 統合開発環境としてのvim ==<br />
{{ide}}<br />
== 便利なプラグイン ==<br />
* [[vimプラグイン NERDTree ツリー型エクスプローラ]]<br />
== データベース ==<br />
* [[vimのdbext.vimでSQLデータベースを操作する方法]]<br />
== vimの新機能 ==<br />
* [[vim 8.0の新機能を解説します]]<br />
== neovim ==<br />
* [[neovim]]<br />
* [[neovimをFreeBSDにpkgコマンドでインストールする]]<br />
* [[neovim 0.1.1をビルドする]]<br />
== ブラウザとvi ==<br />
* [[ChromeやFirefoxでウェブページのtextareaをvi化するエクステンションwasavi]]</div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%81%93%E3%82%8C%E3%81%8B%E3%82%89%E3%81%AF%E3%81%98%E3%82%81%E3%82%8Bvim&diff=263
これからはじめるvim
2017-06-18T12:40:21Z
<p>Daemon: /* 関連項目 */</p>
<hr />
<div>[[vim]]とは、非常にパワフルなエディタの1つです。[[vim]]は、[[vi]]を機能拡張したものです。ここでは、標準以外の[[vimスクリプト]]も出てきますが、基本的には[[vim]](もしくは[[vi]])の標準的なコマンドを中心に扱います。[[vim]]は、標準でも十分にパワフルですし、1行設定を加えるだけで、さらに力を発揮できるようになります。<br />
<br />
'''読み方'''<br />
;vim:ぶいあいえむ、びむ<br />
;vi:ぶいあい<br />
__TOC__<br />
<br />
== 概要 ==<br />
ここで説明する機能は、[[vi]]で使用できないものもあるため、[[vim]]ではなく、純粋な[[vi]]を使用している場合には注意が必要です。<br />
この文章を説明する内容は、だいたい以下の通りです。<br />
* イントロダクション/能書き<br />
* 移動系<br />
* 編集系<br />
* サーチ<br />
* マーク<br />
* Visual系<br />
* 補完<br />
* undo<br />
* バッファ<br />
<br />
このドキュメントの対象者は、[[vim]]を使い始めて、少し慣れた人です。<br />
<br />
== イントロダクション/能書き ==<br />
* vim はパワフル<br />
* vim との会話(コマンド)が必要<br />
* 想像できることは、なんでもできる、かも<br />
* コマンドは解りにくいし、難しい<br />
* でも、やっぱり素晴らしい<br />
<br />
* 「それ、〇〇○で出来るよ」<br />
* 「それ、Vimで出来るよ」<br />
== エディタ ==<br />
* vim<br />
* emacs<br />
* notepad.exe<br />
* ...<br />
<br />
* いろいろあるけど、好きなものを使えばいい<br />
* 機能を覚えて、使えること・技を増やして、効率化するのが大事<br />
<br />
== 前提となってる設定 ==<br />
いろいろと設定をいじってある環境のせいで、デフォルトの動きと違うかもしれません。<br />
<syntaxhighlight lang="vim"><br />
set nocompatible<br />
</syntaxhighlight><br />
<br />
== モード ==<br />
vi はモードがあるエディタです。<br />
* 通常モード<br />
* 挿入モード<br />
* コマンドライン<br />
* ビジュアルモード<br />
<br />
== ヘルプ ==<br />
* ヘルプは、非常に充実している<br />
* :help<br />
* grep だってできる<br />
* <syntaxhighlight lang="vim"><br />
:helpgrep XXX<br />
</syntaxhighlight><br />
** copen/cnext/cprev/cclose<br />
<br />
== チュートリアル ==<br />
まずは、一度はやってみた方が良いです。<br />
<syntaxhighlight lang="bash"><br />
vimtutor<br />
</syntaxhighlight><br />
<br />
== エスケープ ==<br />
モードの切り替えに使う<br />
* わからなくなったらとりあえず esc を連射<br />
* 普通のkbdだとホームポジションからズレる<br />
* C-[ は esc と同じ<br />
** ホームポジションが崩れない<br />
<br />
== 移動系 ==<br />
* h j k l<br />
* カーソルキーは使わない<br />
* ホームポジションから外れる<br />
* viを使ってる意味があるのか?<br />
<br />
<pre><br />
b B w W e<br />
ge gE<br />
</pre><br />
<br />
<pre><br />
C-f C-b<br />
C-u C-d<br />
C-y C-e<br />
</pre><br />
<br />
* g gg G<br />
* go<br />
<br />
* g gj gk g0 g$<br />
* gd gD<br />
** プログラムで。変数の場所。<br />
** sample/cmd_exec/a.c<br />
<br />
* gm<br />
<br />
* gi<br />
* g;<br />
<br />
<pre><br />
+ - <Enter><br />
</pre><br />
<br />
<pre><br />
{ } [[ ]] ( )<br />
</pre><br />
<br />
<syntaxhighlight lang="vim"><br />
%<br />
</syntaxhighlight><br />
<br />
画面固定でカーソル移動<br />
<pre><br />
H L M<br />
</pre><br />
<br />
カーソル位置に画面移動<br />
<pre><br />
z<Enter> z. z-<br />
</pre><br />
<br />
== 編集系 ==<br />
* i I<br />
* J gJ<br />
* o O<br />
* a A<br />
* r R<br />
* s S<br />
* c C<br />
* c$<br />
* cw ct<br />
* cW<br />
<br />
* .<br />
<br />
* d dd D dw db<br />
<br />
** 大文字・小文字<br />
* guu guw gUw g~w g~~<br />
** hoge<br />
** HOGE hoge<br />
<br />
== ヤンク ==<br />
* y p P<br />
* YankRing.vim<br />
* display<br />
<br />
== シフト ==<br />
* <syntaxhighlight lang="vim"><br />
>><br />
</syntaxhighlight><br />
* <syntaxhighlight lang="vim"><br />
<<<br />
</syntaxhighlight><br />
<br />
== フォーマットする ==<br />
* gqap<br />
* gqq<br />
* gw<br />
* gww<br />
* gwap<br />
<br />
ga ascii<br />
<br />
== (インクリ|デクリ)メント ==<br />
* C-a<br />
* C-x<br />
<br />
dib function argument delete<br />
diB function body delete<br />
<br />
== 検索/search ==<br />
=== 基本的な検索 ===<br />
* /<br />
** n<br />
** N<br />
=== よりよい検索 ===<br />
* /do\|we<br />
* /hoge/e<br />
* set hlsearch <br />
* set incsearch<br />
<br />
=== もっと検索 ===<br />
* ?<br />
* *<br />
* #<br />
* g*<br />
* f<br />
* F<br />
* t<br />
* T<br />
* :g<br />
* /\(where\|update\)<br />
<br />
* /^\n\{2} search multi line<br />
<br />
** search option<br />
* /error\c<br />
* set ignorecase<br />
* set smartcase<br />
<br />
== マーク ==<br />
<syntaxhighlight lang="vim"><br />
m<a> `<a> ``<br />
:`a,.d<br />
</syntaxhighlight><br />
<br />
<syntaxhighlight lang="vim"><br />
q @<br />
i += 0;<br />
qa yy p w w C-a q<br />
@a<br />
10@a<br />
</syntaxhighlight><br />
== バッファを操る ==<br />
* ls<br />
* n<br />
* N<br />
* bn<br />
* bp<br />
* :b N<br />
* C-^ (C-6)<br />
<br />
== バッファリスト ==<br />
* buffer explorer - bufexplorer.vim<br />
* bufferlist.vim<br />
== argdo ==<br />
* cd sample/argdo/<br />
* vim *<br />
* argdo %s/bar/meta/g<br />
<br />
== コマンドを実行する ==<br />
!<br />
* example ... date / cal<br />
* <syntaxhighlight lang="vim"><br />
r!<br />
</syntaxhighlight><br />
* !!<br />
* <syntaxhighlight lang="vim"><br />
!sort<br />
c<br />
a<br />
b<br />
</syntaxhighlight><br />
sample/cmd_exec/Makefile<br />
<br />
== insert モード ==<br />
* C-c<br />
* C-a<br />
* C-@<br />
* C-w<br />
* C-u<br />
* C-i or Tab<br />
* C-j<br />
* C-m<br />
<br />
== 挿入モードとレジスタ ==<br />
* C-r #<br />
* C-r %<br />
* C-r /<br />
* C-r . 最後に挿入したテキスト<br />
* C-r : 最後のコマンドライン<br />
* C-rC-W<br />
<br />
* C-r =<br />
<br />
* C-r 1<br />
** ddしたコピー<br />
== 挿入モードでも、画面を動かす ==<br />
<syntaxhighlight lang="vim"><br />
C-x<br />
C-x-e scroll window<br />
C-x-y scroll window<br />
</syntaxhighlight><br />
== ex-mode で楽をする ==<br />
* :C-f<br />
* :C-p<br />
* :C-n<br />
* :C-d<br />
* :<tab><br />
<br />
* @:<br />
<br />
== 画面分割 ==<br />
<syntaxhighlight lang="vim"><br />
:sp :vsp<br />
</syntaxhighlight><br />
<pre><br />
C-w-w C-w-h C-w-j C-w-l C-w-l<br />
C-w-= C-w-+ C-w--<br />
</pre><br />
vim /etc/rc.conf /etc/hosts<br />
:sball<br />
<br />
プラグイン<br />
ZoomWin.vim<br />
<br />
== 入力補完 ==<br />
* C-p C-n<br />
* C-x C-l<br />
* C-x C-f<br />
* C-x C-k dict<br />
* C-x C-i C<br />
<br />
.vimrc<br />
<syntaxhighlight lang="vim"><br />
autocmd FileType php :set dictionary=~/.vim/dict/php.dict<br />
</syntaxhighlight><br />
<br />
== アンドゥ リドゥ ==<br />
* u<br />
* U<br />
* C-r<br />
* set undolevels=1000<br />
== visual mode ==<br />
* v V C-v<br />
* gv<br />
* <syntaxhighlight lang="vim"><br />
'<<br />
</syntaxhighlight><br />
* <syntaxhighlight lang="vim"><br />
'><br />
</syntaxhighlight><br />
<br />
== text-object ==<br />
* カーソルが最初にないなら<br />
** b ve<br />
*** viw<br />
** b dw<br />
*** diw<br />
<br />
* operater<br />
** d, c, y<br />
<br />
{|class="wikitable"<br />
|+ text-object<br />
! キー<br />
! 意味<br />
|-<br />
| w<br />
| word<br />
|-<br />
| s<br />
| sentence<br />
|-<br />
|p<br />
|paragraph<br />
|-<br />
| b<br />
| () block<br />
|-<br />
| B<br />
| {} block<br />
|-<br />
| <<br />
| <> block<br />
|-<br />
| [<br />
| [] block<br />
|-<br />
| "<br />
| "" block<br />
|-<br />
| '<br />
| '' block<br />
|-<br />
| is<br />
| inner sentence<br />
|-<br />
| as<br />
| a sentence<br />
|}<br />
<br />
* sample/cmd_exec/a.cc<br />
* /main di(<br />
* /hoge/e di"<br />
* /hoge/e da"<br />
== tab ==<br />
* tabnew/tabnext/tabprevious/tabclose/tabonly<br />
* gt/gT<br />
* C-w gf<br />
* tablist<br />
<br />
<syntaxhighlight lang="vim"><br />
nmap <Tab> :tabn<CR><br />
nmap <S-Tab> :tabp<CR><br />
</syntaxhighlight><br />
<br />
== プログラミング ==<br />
* %<br />
<br />
* C-v } =<br />
* [I include<br />
* [i include first<br />
* [D define<br />
* [d define first<br />
** sample/cmd_exec/a.c<br />
<br />
* <syntaxhighlight lang="vim"><br />
[<tab><br />
</syntaxhighlight><br />
<br />
* ビジュアルモードと組み合わせる<br />
* insert mode<br />
** C-t<br />
** C-d<br />
<br />
** プログラムでの移動<br />
* ]/ コメントの終わりへ<br />
* [/ コメントの最初へ<br />
<br />
* [[ 関数のはじめ<br />
* ]] 関数の終わり<br />
<br />
* [] まえの関数の終わりへ<br />
* ][ 次の関数の終わりへ<br />
<br />
メソッドの前、後ろへ移動できます。<br />
* [m<br />
* [M<br />
* ]m<br />
* ]M<br />
<br />
* ]#, [#<br />
#ifdef HOGE #ifdef ZERO // 1 #else // 2 #endif #endif<br />
<br />
<syntaxhighlight lang="c"><br />
#include <signal.h><br />
</syntaxhighlight><br />
<syntaxhighlight lang="vim"><br />
:ijump SIGINT<br />
</syntaxhighlight><br />
[ C-i と同じ<br />
sample/cmd_exec/a.c<br />
<br />
== make ==<br />
* vim から make を呼ぶ<br />
* :make<br />
** cd sample/make/<br />
<br />
== omni ==<br />
* sample/omni/<br />
* C-w ] 分割してタグジャンプ<br />
* exctags -R /usr/include/ .<br />
* psearch fopen<br />
* pclose<br />
* ptag<br />
<br />
* ports/ctags<br />
== PHP ==<br />
* php 文字列ハイライトと折りたたみ <syntaxhighlight lang="vim"><br />
au Syntax php set fdm=syntax<br />
</syntaxhighlight><br />
* " 文字列中のSQLをハイライト<syntaxhighlight lang="vim"><br />
let php_sql_query=1<br />
</syntaxhighlight><br />
* " 文字列中のHTMLをハイライト <syntaxhighlight lang="vim"><br />
let php_htmlInStrings=1<br />
</syntaxhighlight><br />
* " クラスと関数の折りたたみ <syntaxhighlight lang="vim"><br />
let php_folding=1<br />
</syntaxhighlight><br />
<br />
== php 文法チェック ==<br />
<syntaxhighlight lang="bash"><br />
php -l foo.php<br />
</syntaxhighlight><br />
<br />
<syntaxhighlight lang="vim"><br />
au Syntax php set makeprg=php\ -l\ %<br />
au Syntax php set errorformat=%m\ in\ %f\ on\ line\ %l<br />
</syntaxhighlight><br />
<br />
- sample/php/syntax_error.php<br />
<br />
== perl 文法チェック ==<br />
<syntaxhighlight lang="vim"><br />
perl -c %<br />
</syntaxhighlight><br />
<br />
== 便利系? ==<br />
<br />
== vimdiff ==<br />
<syntaxhighlight lang="bash"><br />
$ vim -d v1.cc v2.cc<br />
$ vimdiff v1.cc v2.cc<br />
</syntaxhighlight><br />
<br />
* sample/vimdiff<br />
<br />
== vim で man を見る ==<br />
* K<br />
* Man<br />
* \K<br />
<br />
* fopen<br />
* ls<br />
<br />
== ファイルを開くときの補完 ==<br />
* コマンドライン補間をシェルのように <syntaxhighlight lang="vim"><br />
set wildmode=list:longest <br />
</syntaxhighlight><br />
<br />
== vimgrep ==<br />
* vimgrep world *<br />
* vimgrep string\c *<br />
* vimgrep c_str **/*.cc<br />
* vimgrep /str/g *<br />
<br />
<syntaxhighlight lang="bash"><br />
cat<<<EOF>a.vim<br />
%s/<?/<?php/g<br />
write<br />
quite<br />
EOF<br />
</syntaxhighlight><br />
<syntaxhighlight lang="bash"><br />
for f in *.php; do<br />
vim -e -s $f < a.vim<br />
done<br />
</syntaxhighlight><br />
<br />
<syntaxhighlight lang="bash"><br />
ls | vim -<br />
<br />
# これは<br />
<br />
ls > /tmp/x; vim /tmp/x<br />
ls | vim -S b.vim -<br />
</syntaxhighlight><br />
<br />
== 行番号を表示してみる ==<br />
<syntaxhighlight lang="vim"><br />
set nu<br />
set nonu<br />
</syntaxhighlight><br />
<br />
== ファイラ ==<br />
<syntaxhighlight lang="vim"><br />
:Explore<br />
</syntaxhighlight><br />
* コマンド - o p s i r -<br />
<br />
:e ./<br />
:enew<br />
<br />
ls.vim<br />
http://www.vim.org/scripts/script.php?script_id=17<br />
VTreeExplore.vim<br />
grep.vim<br />
B<br />
<br />
== vim エラーメッセージ ==<br />
<syntaxhighlight lang="vim"><br />
:messages<br />
</syntaxhighlight><br />
<br />
== ファイルフォーマット ==<br />
unix/dos<br />
<syntaxhighlight lang="vim"><br />
:set fileformat=unix <br />
<br />
" 省略形<br />
:set ff=unix<br />
</syntaxhighlight><br />
<br />
:browse options<br />
<br />
参考<br />
http://www.vim.org/<br />
function! TabOrCompletion()<br />
let col = col('.') - 1<br />
if !col || getline('.')[col - 1] !~ '\k'<br />
return "\<TAB>"<br />
else<br />
return "\<C-N>"<br />
endif<br />
endfunction<br />
:inoremap <silent> <TAB> <C-R>=TabOrCompletion()<CR><br />
<br />
== 関連項目 ==<br />
{{basic}}<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim&diff=262
vim
2017-06-18T12:38:52Z
<p>Daemon: /* 関連項目 */</p>
<hr />
<div>[[vim]]とは、Vi IMProved の略で、プログラマテキストエディタ(text editor)です。viを<s>魔改造</s>究極進化させた、Emacsと双璧を成す、究極のエディタの1つです。<br />
<br />
'''読み方'''<br />
;[[vim]]:ぶいあいえむ、びむ<br />
;Vi IMProved:ぶいあい いんぷるーぶ<br />
;text editor:てきすとえでぃた<br />
__TOC__<br />
<br />
== 概要 ==<br />
vi/vimは、ノーマルモード、インサートモードなど、いくつものモードを持つ<s>変態</s>素敵なエディタです。このモードは、非常に特徴的でしょう。<br />
非常に少ないタイプで大きな効果を与えられるキーバインド/機能が魅力です。<br />
<br />
[[vim]]は、マルチプラットフォームなアプリケーションです。<br />
* Windows<br />
* Unix ( *BSD, Linux )<br />
* Mac<br />
などの環境で使用できます。<br />
<br />
[[vim]]は、[[vimスクリプト]]と呼ばれるスクリプト言語を持ち、[[vimスクリプト]]で[[vimのプラグイン]]とよばれるプラグインを実装し、[[vim]]の機能を拡張できます。<br />
<br />
もし、貴方がvi、もしくは、[[vim]]を使用しているにも関わらず、メモ帳程度、もしくは、ちょっと毛が生えた程度のものという認識で vi/vim を使用しているのなら、 [[なぜvimを使うのか]] を読んでみてください。[[vim]]は、ちょっとした IDE (統合開発環境)になりますので、[[vimのPHP開発環境]]をご参照ください。<br />
<br />
== gvimとは ==<br />
[[gvim]]は、[[vim]]のウィンドウモード版(GUI版)です。ターミナルではなく、WindowsやX(Xorg)な環境のウィンドウアプリケーションで使用します。<br />
<br />
== インストール ==<br />
* [[vimのインストール]]<br />
== vimのコマンドラインオプション ==<br />
<syntaxhighlight lang="bash"><br />
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 20 2014 14:50:31)<br />
<br />
使用法: vim [引数] [ファイル..] あるファイルを編集する<br />
もしくは: vim [引数] - 標準入力からテキストを読込む<br />
もしくは: vim [引数] -t タグ タグが定義されたところから編集する<br />
もしくは: vim [引数] -q [errorfile] 最初のエラーで編集する<br />
<br />
引数:<br />
-- このあとにはファイル名だけ<br />
-g GUIで起動する ("gvim" と同じ)<br />
-f or --nofork フォアグラウンド: GUIを始めるときにforkしない<br />
-v Viモード ("vi" と同じ)<br />
-e Exモード ("ex" と同じ)<br />
-E 改良Exモード<br />
-s サイレント(バッチ)モード ("ex" 専用)<br />
-d 差分モード ("vidiff" と同じ)<br />
-y イージーモード ("evim" と同じ, モード無)<br />
-R 読込専用モード ("view" と同じ)<br />
-Z 制限モード ("rvim" と同じ)<br />
-m 変更 (ファイル保存時) をできないようにする<br />
-M テキストの編集を行なえないようにする<br />
-b バイナリモード<br />
-l Lispモード<br />
-C Vi互換モード: 'compatible'<br />
-N Vi非互換モード: 'nocompatible<br />
-V[N][fname] ログ出力設定 [レベル N] [ログファイル名 fname]<br />
-D デバッグモード<br />
-n スワップファイルを使用せずメモリだけ<br />
-r スワップファイルを列挙し終了<br />
-r (ファイル名) クラッシュしたセッションを復帰<br />
-L -rと同じ<br />
-A アラビア語モードで起動する<br />
-H ヘブライ語モードで起動する<br />
-F ペルシア語モードで起動する<br />
-T <terminal> 端末を <terminal> に設定する<br />
-u <vimrc> .vimrcの代わりに <vimrc> を使う<br />
-U <gvimrc> .gvimrcの代わりに <gvimrc> を使う<br />
--noplugin プラグインスクリプトをロードしない<br />
-p[N] N 個タブページを開く(省略値: ファイルにつき1個)<br />
-o[N] N 個ウィンドウを開く(省略値: ファイルにつき1個)<br />
-O[N] -oと同じだが垂直分割<br />
+ ファイルの最後からはじめる<br />
+<lnum> <lnum> 行からはじめる<br />
--cmd <command> vimrcをロードする前に <command> を実行する<br />
-c <command> 最初のファイルをロード後 <command> を実行する<br />
-S <session> 最初のファイルをロード後ファイル <session> を取込む<br />
-s <scriptin> ファイル <scriptin> からノーマルコマンドを読込む<br />
-w <scriptout> 入力した全コマンドをファイル <scriptout> に追加する<br />
-W <scriptout> 入力した全コマンドをファイル <scriptout> に保存する<br />
-x 暗号化されたファイルを編集する<br />
-X Xサーバに接続しない<br />
--remote <files> 可能ならばVimサーバで <files> を編集する<br />
--remote-silent <files> 同上, サーバが無くても警告文を出力しない<br />
--remote-wait <files> --remote後 ファイルの編集が終わるのを待つ<br />
--remote-wait-silent <files> 同上, サーバが無くても警告文を出力しない<br />
--remote-tab[-wait][-silent] <files> --remoteでファイル1つにつき1つのタブページを開く<br />
--remote-send <keys> Vimサーバに <keys> を送信して終了する<br />
--remote-expr <expr> サーバで <expr> を実行して結果を表示する<br />
--serverlist Vimサーバ名の一覧を表示して終了する<br />
--servername <name> Vimサーバ <name> に送信/名前設定する<br />
--startuptime <file> 起動にかかった時間の詳細を <file> へ出力する<br />
-i <viminfo> .viminfoの代わりに <viminfo> を使う<br />
-h or --help ヘルプ(このメッセージ)を表示し終了する<br />
--version バージョン情報を表示し終了する<br />
<br />
gvimによって解釈される引数(GTK+バージョン):<br />
-font <font> テキスト表示に <font> を使う(同義: -fn)<br />
-geometry <geom> 初期配置に <geom> を使う(同義: -geom)<br />
-reverse 反転映像を使用する(同義: -rv)<br />
-display <display> <display> でvimを実行する(同義: --display)<br />
--role <role> メインウィンドウを識別する一意な役割(role)を設定する<br />
--socketid <xid> 異なるGTK widgetでVimを開く<br />
--echo-wid ウィンドウIDを標準出力に出力する<br />
</syntaxhighlight><br />
== 関連項目 ==<br />
{{basic}}<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AB%E5%BD%B9%E7%AB%8B%E3%81%A4vim%E3%81%AE%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF&diff=261
プログラミングに役立つvimのテクニック
2017-06-18T12:38:04Z
<p>Daemon: </p>
<hr />
<div>[[vim]]では、プログラミングに役立つテクニックがいろいろあります。<br />
<br />
'''読み方'''<br />
;[[vim]]:ぶいあいえむ<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]] では、プログラミングを支援する機能がいろいろあります。<br />
ここでは、知っていると プログラミングが楽になるテクニックを紹介します。<br />
== vimを使ったプログラミングに役立つテクニックたち ==<br />
* [[vimにテキストをペーストする時にオートインデントさせない方法]]<br />
* [[vimでソースコード全体のインデントを整形する方法]]<br />
* [[vimで復数のソースコードのインデントを修正する方法]]<br />
== 関連項目 ==<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%A7%E5%BE%A9%E6%95%B0%E3%81%AE%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%B3%E3%83%88%E3%82%92%E4%BF%AE%E6%AD%A3%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&diff=260
vimで復数のソースコードのインデントを修正する方法
2017-06-18T12:36:46Z
<p>Daemon: ページの作成:「vimを使ったプログラミングで、復数のソースコードを整形する方法を紹介します。 '''読み方''' ;args:あーぐす ;argdo:あーぐ...」</p>
<hr />
<div>[[vim]]を使ったプログラミングで、復数のソースコードを整形する方法を紹介します。<br />
<br />
'''読み方'''<br />
;args:あーぐす<br />
;argdo:あーぐ どぅー<br />
:wall:だぶりゅ おーる<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vimでソースコード全体のインデントを整形する方法]]で紹介した方法を応用したものです。<br />
== おさらい ==<br />
=== 復数のファイルを一気に開く ===<br />
[[vimでファイルを開く方法]] で復数のファイルの開き方を紹介しました。<br />
<syntaxhighlight lang="vim"><br />
:args *.c<br />
</syntaxhighlight><br />
=== ファイルの全行を一気に整形する ===<br />
[[vimでソースコード全体のインデントを整形する方法]]で以下を紹介しました。<br />
<syntaxhighlight lang="vim"><br />
gg=G<br />
</syntaxhighlight><br />
== 復数のファイルをすべて整形する方法 ==<br />
ここでは、'''C言語''' のソースファイルを前提にして紹介します。<br />
C言語以外でもやり方は、同じなので、 *.c の拡張子部分を適当な拡張子に読み替えて下さい。<br />
<syntaxhighlight lang="vim"><br />
:args *.c<br />
:argdo normal gg=G<br />
:wall<br />
</syntaxhighlight><br />
<br />
上記の意味は以下の通りです。<br />
# *.c にマッチするファイル(復数あれば復数のファイル)を開く<br />
# 開いているバッファすべてに対して、インデントの修正を行う<br />
# 変更のあるバッファをすべて上書きする<br />
== 関連項目 ==<br />
* [[vimでソースコード全体のインデントを整形する方法]]<br />
* [[vimでファイルを開く方法]]<br />
* [[プログラミングに役立つvimのテクニック]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AB%E5%BD%B9%E7%AB%8B%E3%81%A4vim%E3%81%AE%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF&diff=259
プログラミングに役立つvimのテクニック
2017-06-18T12:27:59Z
<p>Daemon: ページの作成:「xとは、 '''読み方''' ;x: __TOC__ == 概要 == * vimにテキストをペーストする時にオートインデントさせない方法 * vimでソ...」</p>
<hr />
<div>[[x]]とは、<br />
<br />
'''読み方'''<br />
;[[x]]:<br />
__TOC__<br />
<br />
== 概要 ==<br />
* [[vimにテキストをペーストする時にオートインデントさせない方法]]<br />
* [[vimでソースコード全体のインデントを整形する方法]]<br />
* [[vimで復数のソースコードのインデントを修正する方法]]<br />
== 関連項目 ==<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&diff=258
メインページ
2017-06-18T12:26:22Z
<p>Daemon: </p>
<hr />
<div>== Vimに軽く入門する ==<br />
{{basic}}<br />
<br />
* [[キーストローク数の少なさを競うVimGolf]]<br />
<br />
* [[vimを終了する方法]]<br />
* [[vimでファイルを開く方法]]<br />
<br />
* [[vimの検索と置換]]<br />
<br />
<br />
* [[vimで行を複製する方法]]<br />
* [[プログラミングに役立つvimのテクニック]]<br />
<br />
== Vimプラグインとスクリプト ==<br />
* [[vimのプラグイン管理]]<br />
* [[vimのプラグイン]]<br />
* [[vimスクリプト]]<br />
== Vimでホゲホゲする ==<br />
* [[vimでバイナリファイルを扱う]]<br />
* [[vimの起動が遅いときの対策]]<br />
* [[vimでコマンドを実行して新しいバッファに書き込む]]<br />
* [[vimで長い行を表示させる方法]]<br />
* [[vimで設定ファイルvimrcやプラグインを読み込まずに起動する方法]]<br />
* [[vimでMarkdownをプレビューする方法]]<br />
* [[gvimでShift InsertでS-Insertが入力されて貼り付けできない]]<br />
== 統合開発環境としてのvim ==<br />
{{ide}}<br />
== 便利なプラグイン ==<br />
* [[vimプラグイン NERDTree ツリー型エクスプローラ]]<br />
== データベース ==<br />
* [[vimのdbext.vimでSQLデータベースを操作する方法]]<br />
== vimの新機能 ==<br />
* [[vim 8.0の新機能を解説します]]<br />
== neovim ==<br />
* [[neovim]]<br />
* [[neovimをFreeBSDにpkgコマンドでインストールする]]<br />
* [[neovim 0.1.1をビルドする]]<br />
== ブラウザとvi ==<br />
* [[ChromeやFirefoxでウェブページのtextareaをvi化するエクステンションwasavi]]</div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&diff=257
メインページ
2017-06-18T12:24:29Z
<p>Daemon: </p>
<hr />
<div>== Vimに軽く入門する ==<br />
{{basic}}<br />
<br />
* [[キーストローク数の少なさを競うVimGolf]]<br />
<br />
* [[vimを終了する方法]]<br />
* [[vimでファイルを開く方法]]<br />
<br />
* [[vimの検索と置換]]<br />
<br />
<br />
* [[vimで行を複製する方法]]<br />
* [[vimのプログラミングに役立つテクニック]]<br />
* [[vimにテキストをペーストする時にオートインデントさせない方法]]<br />
* [[vimでソースコード全体のインデントを整形する方法]]<br />
* [[vimで復数のソースコードのインデントを修正する方法]]<br />
== Vimプラグインとスクリプト ==<br />
* [[vimのプラグイン管理]]<br />
* [[vimのプラグイン]]<br />
* [[vimスクリプト]]<br />
== Vimでホゲホゲする ==<br />
* [[vimでバイナリファイルを扱う]]<br />
* [[vimの起動が遅いときの対策]]<br />
* [[vimでコマンドを実行して新しいバッファに書き込む]]<br />
* [[vimで長い行を表示させる方法]]<br />
* [[vimで設定ファイルvimrcやプラグインを読み込まずに起動する方法]]<br />
* [[vimでMarkdownをプレビューする方法]]<br />
* [[gvimでShift InsertでS-Insertが入力されて貼り付けできない]]<br />
== 統合開発環境としてのvim ==<br />
{{ide}}<br />
== 便利なプラグイン ==<br />
* [[vimプラグイン NERDTree ツリー型エクスプローラ]]<br />
== データベース ==<br />
* [[vimのdbext.vimでSQLデータベースを操作する方法]]<br />
== vimの新機能 ==<br />
* [[vim 8.0の新機能を解説します]]<br />
== neovim ==<br />
* [[neovim]]<br />
* [[neovimをFreeBSDにpkgコマンドでインストールする]]<br />
* [[neovim 0.1.1をビルドする]]<br />
== ブラウザとvi ==<br />
* [[ChromeやFirefoxでウェブページのtextareaをvi化するエクステンションwasavi]]</div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%A7%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E5%85%A8%E4%BD%93%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%B3%E3%83%88%E3%82%92%E6%95%B4%E5%BD%A2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&diff=256
vimでソースコード全体のインデントを整形する方法
2017-06-15T15:50:35Z
<p>Daemon: </p>
<hr />
<div>プログラムのソースコードでは、「インデント」(字下げ)が非常に重要です。インデントが壊れているソースコードを簡単に読みやすくする方法は、ソースコード全体(ファイルの全行)のインデントを直すことです。[[vim]]では簡単にインデントをし直せるので、その方法を紹介します。<br />
<br />
'''読み方'''<br />
;インデント:いんでんと<br />
;字下げ:じさげ<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]の自動インデント機能は非常に便利です。自分で字下げをしなくても、エディタが自動的にソースコードの言語にあわせて、インデントしてくれます。<br />
<br />
他人の作ったソースコードをもってきたときに、そのファイルのインデントが狂っていることがあるかもしれませんし、ソースコードをコピペしたときに、オートインデントの影響でインデントがおかしくなっている(参考 [[vimにテキストをペーストする時にオートインデントさせない方法]]) 、といったこともあります。<br />
<br />
インデントを1つ1つタブなどを入れていくのは、骨が折れます。<br />
<br />
実は、1つ1つのインデントを手で直す必要は、ないはずです。それは、[[vim]] が実は簡単にインデントを直す機能を持っているからです。<br />
== インデントとは ==<br />
そもそも '''インデント''' って何?っていう方は、このセクションを読んで下さい。<br />
ご存知の方は、次のセクションまで飛ばして頂いて大丈夫です。<br />
<br />
'''インデント'''とは、'''字下げ'''のことです。<br />
タブやスペースなどの「空白」で、ソースコードを読みやすくするために使われます。<br />
人間の読みやすさ、認識のしやすさの助けになります。<br />
== ソースコード全体のインデントを修正する方法 ==<br />
[[vim]]の '''=''' (イコール) は、 インデントを修正するコマンドです。<br />
バッファの先頭に戻り、バッファの最後までに対して = を実行することで、ソースコードのすべての行(開いているファイルのバッファ全体)に対して、インデントの修正を実行することができます。<br />
<syntaxhighlight lang="vim"><br />
gg=G<br />
</syntaxhighlight><br />
== まとめ ==<br />
* [[vim]] は、インデントを直す機能を持っている。<br />
* インデントを修正するコマンドは '''=''' (イコール)。<br />
* ソースコード全体(ファイル全体のすべての行)のインデントをなおすには '''gg=G''' 。<br />
== 関連項目 ==<br />
* [[vimにテキストをペーストする時にオートインデントさせない方法]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AB%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E3%83%9A%E3%83%BC%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B%E6%99%82%E3%81%AB%E3%82%AA%E3%83%BC%E3%83%88%E3%82%A4%E3%83%B3%E3%83%87%E3%83%B3%E3%83%88%E3%81%95%E3%81%9B%E3%81%AA%E3%81%84%E6%96%B9%E6%B3%95&diff=255
vimにテキストをペーストする時にオートインデントさせない方法
2017-06-15T15:46:22Z
<p>Daemon: </p>
<hr />
<div>クリップボードのソースコードを[[vim]]にペースト(貼り付け)する時に、オートインデント(autoindent)により、貼り付けたテキストがガタガタにフォーマットされる体験をしたことはありますか?ここでは、それの対処方法について紹介します。<br />
<br />
'''読み方'''<br />
;autoindent:おーといんでんと<br />
__TOC__<br />
<br />
== 概要 ==<br />
クリップボードのソースコードを[[vim]]にペースト(貼り付け)する時に、オートインデント(autoindent)により、貼り付けたテキストがガタガタにフォーマットされる体験をしたことはありますか?<br />
<br />
この問題を解決するために、違うファイルを作成して、違うファイルに貼り付けて、[[vim]] から読み込んだりして、乗り越えてしまっている人もいるかもしれません。<br />
<br />
実は、[[vim]] だけでこの問題は解決できます。<br />
<br />
外部コマンドを使って、対応することもできますが、おそらく、ムダの少ない方法は paste モードのオンオフではないでしょうか。<br />
== 解決策 ==<br />
コードをペーストするときに、 autoindent をオフにして、特別な paste モードにします。<br />
以下のコマンドで paste モードになります。<br />
<syntaxhighlight lang="vim"><br />
:set paste<br />
</syntaxhighlight><br />
vim の表示が例えば、以下のような感じになります。<br />
-- INSERT (paste) --<br />
<br />
コードのペースト(貼り付け)が終わったら、 paste モードをオフにします。再び、 auto indent を起動します。<br />
<syntaxhighlight lang="vim"><br />
:set nopaste<br />
</syntaxhighlight><br />
<br />
paste モードの切り替え用のキーバインドを設定することも可能です。<br />
<syntaxhighlight lang="vim"><br />
set pastetoggle=<F3><br />
</syntaxhighlight><br />
上記の例では、 F3 キーで paste モードのオンオフができます。<br />
== まとめ ==<br />
* paste モードを操ることで、オートインデントに悩まずに、コピペ作業を効率化できます。<br />
* set paste<br />
* set nopaste<br />
== 関連項目 ==<br />
* [[vimでソースコード全体のインデントを整形する方法]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%A7%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E5%85%A8%E4%BD%93%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%87%E3%83%B3%E3%83%88%E3%82%92%E6%95%B4%E5%BD%A2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&diff=254
vimでソースコード全体のインデントを整形する方法
2017-06-15T15:45:57Z
<p>Daemon: ページの作成:「プログラムのソースコードでは、「インデント」(字下げ)が非常に重要です。インデントが壊れているソースコードを簡単...」</p>
<hr />
<div>プログラムのソースコードでは、「インデント」(字下げ)が非常に重要です。インデントが壊れているソースコードを簡単に読みやすくする方法は、ソースコード全体のインデントを直すことです。[[vim]]では簡単にインデントをし直せるので、その方法を紹介します。<br />
<br />
'''読み方'''<br />
;インデント:いんでんと<br />
;字下げ:じさげ<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]の自動インデント機能は非常に便利です。自分で字下げをしなくても、エディタが自動的にソースコードの言語にあわせて、インデントしてくれます。<br />
<br />
他人の作ったソースコードをもってきたときに、そのファイルのインデントが狂っていることがあるかもしれませんし、ソースコードをコピペしたときに、オートインデントの影響でインデントがおかしくなっている(参考 [[vimにテキストをペーストする時にオートインデントさせない方法]]) 、といったこともあります。<br />
<br />
インデントを1つ1つタブなどを入れていくのは、骨が折れます。<br />
<br />
実は、1つ1つのインデントを手で直す必要は、ないはずです。それは、[[vim]] が実は簡単にインデントを直す機能を持っているからです。<br />
== インデントとは ==<br />
そもそも '''インデント''' って何?っていう方は、このセクションを読んで下さい。<br />
ご存知の方は、次のセクションまで飛ばして頂いて大丈夫です。<br />
<br />
'''インデント'''とは、'''字下げ'''のことです。<br />
タブやスペースなどの「空白」で、ソースコードを読みやすくするために使われます。<br />
人間の読みやすさ、認識のしやすさの助けになります。<br />
== ソースコード全体のインデントを修正する方法 ==<br />
[[vim]]の '''=''' (イコール) は、 インデントを修正するコマンドです。<br />
バッファの先頭に戻り、バッファの最後までに対して = を実行することで、ソースコードのすべての行(開いているファイルのバッファ全体)に対して、インデントの修正を実行することができます。<br />
<syntaxhighlight lang="vim"><br />
gg=G<br />
</syntaxhighlight><br />
== まとめ ==<br />
* [[vim]] は、インデントを直す機能を持っている。<br />
* インデントを修正するコマンドは '''=''' (イコール)。<br />
* ソースコード全体(ファイル全体のすべての行)のインデントをなおすには '''gg=G''' 。<br />
== 関連項目 ==<br />
* [[vimにテキストをペーストする時にオートインデントさせない方法]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&diff=253
メインページ
2017-06-15T15:35:46Z
<p>Daemon: /* Vimに軽く入門する */</p>
<hr />
<div>== Vimに軽く入門する ==<br />
{{basic}}<br />
<br />
* [[キーストローク数の少なさを競うVimGolf]]<br />
<br />
* [[vimを終了する方法]]<br />
* [[vimでファイルを開く方法]]<br />
<br />
* [[vimの検索と置換]]<br />
<br />
<br />
* [[vimで行を複製する方法]]<br />
* [[vimにテキストをペーストする時にオートインデントさせない方法]]<br />
* [[vimでソースコード全体のインデントを整形する方法]]<br />
<br />
== Vimプラグインとスクリプト ==<br />
* [[vimのプラグイン管理]]<br />
* [[vimのプラグイン]]<br />
* [[vimスクリプト]]<br />
== Vimでホゲホゲする ==<br />
* [[vimでバイナリファイルを扱う]]<br />
* [[vimの起動が遅いときの対策]]<br />
* [[vimでコマンドを実行して新しいバッファに書き込む]]<br />
* [[vimで長い行を表示させる方法]]<br />
* [[vimで設定ファイルvimrcやプラグインを読み込まずに起動する方法]]<br />
* [[vimでMarkdownをプレビューする方法]]<br />
* [[gvimでShift InsertでS-Insertが入力されて貼り付けできない]]<br />
== 統合開発環境としてのvim ==<br />
{{ide}}<br />
== 便利なプラグイン ==<br />
* [[vimプラグイン NERDTree ツリー型エクスプローラ]]<br />
== データベース ==<br />
* [[vimのdbext.vimでSQLデータベースを操作する方法]]<br />
== vimの新機能 ==<br />
* [[vim 8.0の新機能を解説します]]<br />
== neovim ==<br />
* [[neovim]]<br />
* [[neovimをFreeBSDにpkgコマンドでインストールする]]<br />
* [[neovim 0.1.1をビルドする]]<br />
== ブラウザとvi ==<br />
* [[ChromeやFirefoxでウェブページのtextareaをvi化するエクステンションwasavi]]</div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AB%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E3%83%9A%E3%83%BC%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B%E6%99%82%E3%81%AB%E3%82%AA%E3%83%BC%E3%83%88%E3%82%A4%E3%83%B3%E3%83%87%E3%83%B3%E3%83%88%E3%81%95%E3%81%9B%E3%81%AA%E3%81%84%E6%96%B9%E6%B3%95&diff=252
vimにテキストをペーストする時にオートインデントさせない方法
2017-06-14T15:12:40Z
<p>Daemon: ページの作成:「クリップボードのソースコードをvimにペースト(貼り付け)する時に、オートインデント(autoindent)により、貼り付けたテキス...」</p>
<hr />
<div>クリップボードのソースコードを[[vim]]にペースト(貼り付け)する時に、オートインデント(autoindent)により、貼り付けたテキストがガタガタにフォーマットされる体験をしたことはありますか?ここでは、それの対処方法について紹介します。<br />
<br />
'''読み方'''<br />
;autoindent:おーといんでんと<br />
__TOC__<br />
<br />
== 概要 ==<br />
クリップボードのソースコードを[[vim]]にペースト(貼り付け)する時に、オートインデント(autoindent)により、貼り付けたテキストがガタガタにフォーマットされる体験をしたことはありますか?<br />
<br />
この問題を解決するために、違うファイルを作成して、違うファイルに貼り付けて、[[vim]] から読み込んだりして、乗り越えてしまっている人もいるかもしれません。<br />
<br />
実は、[[vim]] だけでこの問題は解決できます。<br />
<br />
外部コマンドを使って、対応することもできますが、おそらく、ムダの少ない方法は paste モードのオンオフではないでしょうか。<br />
== 解決策 ==<br />
コードをペーストするときに、 autoindent をオフにして、特別な paste モードにします。<br />
以下のコマンドで paste モードになります。<br />
<syntaxhighlight lang="vim"><br />
:set paste<br />
</syntaxhighlight><br />
vim の表示が例えば、以下のような感じになります。<br />
-- INSERT (paste) --<br />
<br />
コードのペースト(貼り付け)が終わったら、 paste モードをオフにします。再び、 auto indent を起動します。<br />
<syntaxhighlight lang="vim"><br />
:set nopaste<br />
</syntaxhighlight><br />
<br />
paste モードの切り替え用のキーバインドを設定することも可能です。<br />
<syntaxhighlight lang="vim"><br />
set pastetoggle=<F3><br />
</syntaxhighlight><br />
上記の例では、 F3 キーで paste モードのオンオフができます。<br />
== まとめ ==<br />
* paste モードを操ることで、オートインデントに悩まずに、コピペ作業を効率化できます。<br />
* set paste<br />
* set nopaste<br />
== 関連項目 ==<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&diff=251
メインページ
2017-06-14T15:00:33Z
<p>Daemon: </p>
<hr />
<div>== Vimに軽く入門する ==<br />
{{basic}}<br />
<br />
* [[キーストローク数の少なさを競うVimGolf]]<br />
<br />
* [[vimを終了する方法]]<br />
* [[vimでファイルを開く方法]]<br />
<br />
* [[vimの検索と置換]]<br />
<br />
<br />
* [[vimで行を複製する方法]]<br />
* [[vimにテキストをペーストする時にオートインデントさせない方法]]<br />
<br />
<br />
<br />
<br />
== Vimプラグインとスクリプト ==<br />
* [[vimのプラグイン管理]]<br />
* [[vimのプラグイン]]<br />
* [[vimスクリプト]]<br />
== Vimでホゲホゲする ==<br />
* [[vimでバイナリファイルを扱う]]<br />
* [[vimの起動が遅いときの対策]]<br />
* [[vimでコマンドを実行して新しいバッファに書き込む]]<br />
* [[vimで長い行を表示させる方法]]<br />
* [[vimで設定ファイルvimrcやプラグインを読み込まずに起動する方法]]<br />
* [[vimでMarkdownをプレビューする方法]]<br />
* [[gvimでShift InsertでS-Insertが入力されて貼り付けできない]]<br />
== 統合開発環境としてのvim ==<br />
{{ide}}<br />
== 便利なプラグイン ==<br />
* [[vimプラグイン NERDTree ツリー型エクスプローラ]]<br />
== データベース ==<br />
* [[vimのdbext.vimでSQLデータベースを操作する方法]]<br />
== vimの新機能 ==<br />
* [[vim 8.0の新機能を解説します]]<br />
== neovim ==<br />
* [[neovim]]<br />
* [[neovimをFreeBSDにpkgコマンドでインストールする]]<br />
* [[neovim 0.1.1をビルドする]]<br />
== ブラウザとvi ==<br />
* [[ChromeやFirefoxでウェブページのtextareaをvi化するエクステンションwasavi]]</div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E7%BD%AE%E6%8F%9B%E3%81%AE%E3%83%87%E3%83%9F%E3%83%AA%E3%82%BF%E3%81%AF%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E4%BB%A5%E5%A4%96%E3%82%82%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%82%8B&diff=250
vimの置換のデミリタはスラッシュ以外も利用できる
2017-06-12T15:08:58Z
<p>Daemon: /* スラッシュ以外を使う利点は? */</p>
<hr />
<div>[[vim]]の置換では、よくデミリタとしてスラッシュ(/)が利用されますが、実はスラッシュ以外も利用できます。スラッシュ以外を利用することで、/ をエスケープせずに使うといったこともできます。<br />
<br />
'''読み方'''<br />
;置換:ちかん<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]では、 :s コマンドを利用して、文字列の'''置換''' を行います。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/<br />
</syntaxhighlight><br />
<br />
置換コマンド、検索パターン、置換後のテキストを区切るための'''デミリタ'''(区切り文字)として、スラッシュ (/) を利用していることが多いのではないでしょうか?<br />
その背景には、例として、 スラッシュが利用されることが多いからではないかと思います。<br />
<br />
vim のヘルプでも、はじめに出てくる例がスラッシュだったりします。<br />
以下は、 vim の日本語のヘルプの抜粋です。<br />
ヘルプをよんでいくと、スラッシュ以外の例が出てきます。<br />
<syntaxhighlight lang="vim"><br />
4.2 置換 *:substitute*<br />
*:s* *:su*<br />
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]<br />
[range] の各行で {pattern} のマッチを {string} に置き<br />
換える。<br />
{pattern}については|pattern|を参照すること。<br />
{string} は普通の文字列でもよいし、特別な指定方法を使っ<br />
てもよい。|sub-replace-special| を参照。<br />
[range] と [count] が指定されないと、現在行内でのみ置<br />
換を行う。<br />
[count] が指定されると、[range] の最終行から数えて<br />
[count] 行で置換を行う。[range] が指定されないと、現在<br />
行から開始する。<br />
|cmdline-ranges| も参照。<br />
フラグについては |:s_flags| を参照。<br />
</syntaxhighlight><br />
== スラッシュ以外の区切り文字をデミリタとして使えるもの ==<br />
いろいろな記号が利用できます。<br />
* コロン (:)<br />
* セミコロン (;)<br />
* エクスクラ メーション・マーク (exclamation mark) (!)<br />
* アットマーク (@)<br />
* シャープ (#)<br />
* アスタリスク (*)<br />
* ドット (.)<br />
* カンマ (,)<br />
<br />
逆に使えないものとして、パイプ (|) が挙げられます。<br />
== スラッシュ以外の区切り文字をデミリタとして使う例 ==<br />
よくある置換の例を挙げます。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/<br />
</syntaxhighlight><br />
<br />
さて、上の例のデミリタを変えて、例を示します。<br />
<syntaxhighlight lang="vim"><br />
:s!foo!bar!<br />
:s:foo:bar:<br />
:s;foo;bar;<br />
:s@foo@bar@<br />
:s.foo.bar.<br />
:s#foo#bar#<br />
</syntaxhighlight><br />
== スラッシュ以外を使う利点は? ==<br />
デミリタとして、スラッシュ以外を使う利点ですが、スラッシュをエスケープせずにパターンや置換後のテキストに使えることではないでしょうか。<br />
パターンや置換後のテキストの指定に、スラッシュを使いたいときに、デミリタにスラッシュを使っている場合、バックスラッシュでスラッシュをエスケープしなければなりません。<br />
<br />
スラッシュをエスケープしはじめると、コマンドが読みにくくなってしまい、なにがなんだかわからなくなってしまう方もいるのではないでしょうか?<br />
<syntaxhighlight lang="vim"><br />
:s/foo/https:\/\/foo.com\//<br />
</syntaxhighlight><br />
デミリタをシャープ(#)に変えてみるとスッキリした形になります。<br />
<syntaxhighlight lang="vim"><br />
:s#foo#https://foo.com/#<br />
</syntaxhighlight><br />
ほら、とっても読みやすいでしょ?<br />
<br />
ほぼ同じような内容ではありますが、[[vimの置換でスラッシュをエスケープせずに置換する方法]]をご参照下さい。<br />
<br />
== まとめ ==<br />
* 置換のデミリタはスラッシュ以外も利用できる<br />
* パターンや置換後のテキストにスラッシュを使いたい場合には、スラッシュ以外のデミリタを利用する<br />
* パターンや置換後のテキストに出てこない記号でデミリタを代替するとエスケープレスで読みやすいコマンドが書ける<br />
== 関連項目 ==<br />
* [[vimの置換でスラッシュをエスケープせずに置換する方法]]<br />
* [[vimの検索と置換]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E7%BD%AE%E6%8F%9B%E3%81%AE%E3%83%87%E3%83%9F%E3%83%AA%E3%82%BF%E3%81%AF%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E4%BB%A5%E5%A4%96%E3%82%82%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%82%8B&diff=249
vimの置換のデミリタはスラッシュ以外も利用できる
2017-06-12T15:07:39Z
<p>Daemon: </p>
<hr />
<div>[[vim]]の置換では、よくデミリタとしてスラッシュ(/)が利用されますが、実はスラッシュ以外も利用できます。スラッシュ以外を利用することで、/ をエスケープせずに使うといったこともできます。<br />
<br />
'''読み方'''<br />
;置換:ちかん<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]では、 :s コマンドを利用して、文字列の'''置換''' を行います。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/<br />
</syntaxhighlight><br />
<br />
置換コマンド、検索パターン、置換後のテキストを区切るための'''デミリタ'''(区切り文字)として、スラッシュ (/) を利用していることが多いのではないでしょうか?<br />
その背景には、例として、 スラッシュが利用されることが多いからではないかと思います。<br />
<br />
vim のヘルプでも、はじめに出てくる例がスラッシュだったりします。<br />
以下は、 vim の日本語のヘルプの抜粋です。<br />
ヘルプをよんでいくと、スラッシュ以外の例が出てきます。<br />
<syntaxhighlight lang="vim"><br />
4.2 置換 *:substitute*<br />
*:s* *:su*<br />
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]<br />
[range] の各行で {pattern} のマッチを {string} に置き<br />
換える。<br />
{pattern}については|pattern|を参照すること。<br />
{string} は普通の文字列でもよいし、特別な指定方法を使っ<br />
てもよい。|sub-replace-special| を参照。<br />
[range] と [count] が指定されないと、現在行内でのみ置<br />
換を行う。<br />
[count] が指定されると、[range] の最終行から数えて<br />
[count] 行で置換を行う。[range] が指定されないと、現在<br />
行から開始する。<br />
|cmdline-ranges| も参照。<br />
フラグについては |:s_flags| を参照。<br />
</syntaxhighlight><br />
== スラッシュ以外の区切り文字をデミリタとして使えるもの ==<br />
いろいろな記号が利用できます。<br />
* コロン (:)<br />
* セミコロン (;)<br />
* エクスクラ メーション・マーク (exclamation mark) (!)<br />
* アットマーク (@)<br />
* シャープ (#)<br />
* アスタリスク (*)<br />
* ドット (.)<br />
* カンマ (,)<br />
<br />
逆に使えないものとして、パイプ (|) が挙げられます。<br />
== スラッシュ以外の区切り文字をデミリタとして使う例 ==<br />
よくある置換の例を挙げます。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/<br />
</syntaxhighlight><br />
<br />
さて、上の例のデミリタを変えて、例を示します。<br />
<syntaxhighlight lang="vim"><br />
:s!foo!bar!<br />
:s:foo:bar:<br />
:s;foo;bar;<br />
:s@foo@bar@<br />
:s.foo.bar.<br />
:s#foo#bar#<br />
</syntaxhighlight><br />
== スラッシュ以外を使う利点は? ==<br />
デミリタとして、スラッシュ以外を使う利点ですが、スラッシュをエスケープせずにパターンや置換後のテキストに使えることではないでしょうか。<br />
パターンや置換後のテキストの指定に、スラッシュを使いたいときに、デミリタにスラッシュを使っている場合、バックスラッシュでスラッシュをエスケープしなければなりません。<br />
<br />
スラッシュをエスケープしはじめると、コマンドが読みにくくなってしまい、なにがなんだかわからなくなってしまう方もいるのではないでしょうか?<br />
<syntaxhighlight lang="vim"><br />
:s/foo/https:\/\/foo.com\//<br />
</syntaxhighlight><br />
デミリタをシャープ(#)に変えてみるとスッキリした形になります。<br />
<syntaxhighlight lang="vim"><br />
:s#foo#https://foo.com/#<br />
</syntaxhighlight><br />
ほら、とっても読みやすいでしょ?<br />
<br />
== まとめ ==<br />
* 置換のデミリタはスラッシュ以外も利用できる<br />
* パターンや置換後のテキストにスラッシュを使いたい場合には、スラッシュ以外のデミリタを利用する<br />
* パターンや置換後のテキストに出てこない記号でデミリタを代替するとエスケープレスで読みやすいコマンドが書ける<br />
== 関連項目 ==<br />
* [[vimの置換でスラッシュをエスケープせずに置換する方法]]<br />
* [[vimの検索と置換]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E7%BD%AE%E6%8F%9B%E3%81%A7%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%82%92%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E3%81%9B%E3%81%9A%E3%81%AB%E7%BD%AE%E6%8F%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&diff=248
vimの置換でスラッシュをエスケープせずに置換する方法
2017-06-12T15:07:12Z
<p>Daemon: </p>
<hr />
<div>[[vim]]の置換は、 :s/pattern/string/options を使って行います。デミリタをスラッシュにしてしまうと、string の部分にスラッシュを使用する場合には、バックスラッシュによるエスケープ処理が必要になります。デミリタを変更することで、バックスラッシュによるエスケープなしに、置換ができるようになります。<br />
<br />
'''読み方'''<br />
;pattern:ぱたーん<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]の置換は、 :s/pattern/string/options を使って行います。デミリタをスラッシュにしてしまうと、string の部分にスラッシュを使用する場合には、バックスラッシュによるエスケープ処理が必要になります。<br />
<br />
エスケープ処理が入ると、可読性が著しく悪くなります。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/https:\/\/foo.com\//<br />
</syntaxhighlight><br />
どこまでが 置き換え後の文字列なのか、デミリタの記号なのかが、よく考えないとわからなくなってしまいます。<br />
<br />
[[vim]]の置換のデミリタは、スラッシュを使わなければならないのではなく、ほかの記号でも代替可能です。<br />
<br />
利用できるデミリタの例は、 [[vimの置換のデミリタはスラッシュ以外も利用できる]] をご参照下さい。<br />
== スラッシュ以外のデミリタを利用する ==<br />
デミリタとして、スラッシュ以外を使う利点ですが、スラッシュをエスケープせずにパターンや置換後のテキストに使えることではないでしょうか。<br />
パターンや置換後のテキストの指定に、スラッシュを使いたいときに、デミリタにスラッシュを使っている場合、バックスラッシュでスラッシュをエスケープしなければなりません。<br />
<br />
スラッシュをエスケープしはじめると、コマンドが読みにくくなってしまい、なにがなんだかわからなくなってしまう方もいるのではないでしょうか?<br />
<syntaxhighlight lang="vim"><br />
:s/foo/https:\/\/foo.com\//<br />
</syntaxhighlight><br />
デミリタをシャープ(#)に変えてみるとスッキリした形になります。<br />
<syntaxhighlight lang="vim"><br />
:s#foo#https://foo.com/#<br />
</syntaxhighlight><br />
非常に読みやすくなったのではないでしょうか?<br />
== スラッシュの置換の例 ==<br />
スラッシュ(/) を スラッシュスラッシュ(//)する場合には、デミリタをスラッシュにシた場合、このようなコマンドになります。<br />
<syntaxhighlight lang="vim"><br />
:s/\//\/\//<br />
</syntaxhighlight><br />
これだけでも、頭がおかしくなりそうです。<br />
<br />
デミリタをスラッシュ以外にかえることで、こんなにスッキリします。<br />
<syntaxhighlight lang="vim"><br />
:s#/#//#<br />
</syntaxhighlight><br />
<br />
URL を書き換える例だと、こんな感じで、やはり読みにくいです。<br />
<syntaxhighlight lang="vim"><br />
:s/http:\/\/foo.com\/index.html/https:\/\/bar.com\/index.php/<br />
</syntaxhighlight><br />
こんな感じで簡単になります。<br />
<syntaxhighlight lang="vim"><br />
:s#http://foo.com/index.html#https://bar.com/index.php#<br />
</syntaxhighlight><br />
== まとめ ==<br />
* 置換のデミリタはいろいろな記号が利用できる<br />
* 置換のデミリタを変えれば、パターンや置換後の文字列に含める'''記号'''のエスケープ処理を省略できる<br />
== 関連項目 ==<br />
* [[vimの置換のデミリタはスラッシュ以外も利用できる]]<br />
* [[vimの検索と置換]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E7%BD%AE%E6%8F%9B%E3%81%A7%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%82%92%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E3%81%9B%E3%81%9A%E3%81%AB%E7%BD%AE%E6%8F%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&diff=247
vimの置換でスラッシュをエスケープせずに置換する方法
2017-06-12T15:02:25Z
<p>Daemon: ページの作成:「vimの置換は、 :s/pattern/string/options を使って行います。デミリタをスラッシュにしてしまうと、string の部分にスラッシュを使...」</p>
<hr />
<div>[[vim]]の置換は、 :s/pattern/string/options を使って行います。デミリタをスラッシュにしてしまうと、string の部分にスラッシュを使用する場合には、バックスラッシュによるエスケープ処理が必要になります。デミリタを変更することで、バックスラッシュによるエスケープなしに、置換ができるようになります。<br />
<br />
'''読み方'''<br />
;pattern:ぱたーん<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]の置換は、 :s/pattern/string/options を使って行います。デミリタをスラッシュにしてしまうと、string の部分にスラッシュを使用する場合には、バックスラッシュによるエスケープ処理が必要になります。<br />
<br />
エスケープ処理が入ると、可読性が著しく悪くなります。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/https:\/\/foo.com\//<br />
</syntaxhighlight><br />
どこまでが 置き換え後の文字列なのか、デミリタの記号なのかが、よく考えないとわからなくなってしまいます。<br />
<br />
[[vim]]の置換のデミリタは、スラッシュを使わなければならないのではなく、ほかの記号でも代替可能です。<br />
<br />
利用できるデミリタの例は、 [[vimの置換のデミリタはスラッシュ以外も利用できる]] をご参照下さい。<br />
== スラッシュ以外のデミリタを利用する ==<br />
デミリタとして、スラッシュ以外を使う利点ですが、スラッシュをエスケープせずにパターンや置換後のテキストに使えることではないでしょうか。<br />
パターンや置換後のテキストの指定に、スラッシュを使いたいときに、デミリタにスラッシュを使っている場合、バックスラッシュでスラッシュをエスケープしなければなりません。<br />
<br />
スラッシュをエスケープしはじめると、コマンドが読みにくくなってしまい、なにがなんだかわからなくなってしまう方もいるのではないでしょうか?<br />
<syntaxhighlight lang="vim"><br />
:s/foo/https:\/\/foo.com\//<br />
</syntaxhighlight><br />
デミリタをシャープ(#)に変えてみるとスッキリした形になります。<br />
<syntaxhighlight lang="vim"><br />
:s#foo#https://foo.com/#<br />
</syntaxhighlight><br />
非常に読みやすくなったのではないでしょうか?<br />
== まとめ ==<br />
* 置換のデミリタはいろいろな記号が利用できる<br />
* 置換のデミリタを変えれば、パターンや置換後の文字列に含める'''記号'''のエスケープ処理を省略できる<br />
== 関連項目 ==<br />
* [[vimの置換のデミリタはスラッシュ以外も利用できる]]<br />
* [[vimの検索と置換]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E6%9C%80%E5%BE%8C%E3%81%AE%E7%BD%AE%E6%8F%9B%E3%82%92%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%99%E6%96%B9%E6%B3%95&diff=246
vimの最後の置換を繰り返す方法
2017-06-11T14:45:37Z
<p>Daemon: ページの作成:「vimでは、強力な置換機能が提供されています。vimで最後に行った置換を後から繰り返したくなることはありませんか? '...」</p>
<hr />
<div>[[vim]]では、強力な置換機能が提供されています。[[vim]]で最後に行った置換を後から繰り返したくなることはありませんか?<br />
<br />
'''読み方'''<br />
;&:あんぱさんど<br />
__TOC__<br />
<br />
== 概要 ==<br />
ここでは、[[vim]]の最後の置換を繰り返す方法を紹介します。<br />
同じ置換を行いたいときに、入力の短縮になります。<br />
== 置換を繰り返す方法 ==<br />
置換の繰り返す方法は、簡単です。 & を使います。<br />
<syntaxhighlight lang="vim"><br />
:&<br />
</syntaxhighlight><br />
<br />
置換を繰り返す例です。<br />
まず、普通に置換を行います。そのあとで、置換したい行で、:& を実行すると、最後の置換を繰り返します。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/<br />
:&<br />
</syntaxhighlight><br />
== オプションの指定 ==<br />
g オプションで、行中のすべてのマッチを置換することができます。<br />
以下の場合は、繰り返しのときに、 g オプションを指定していないので、最初のマッチだけが置換されます。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/g<br />
:&<br />
</syntaxhighlight><br />
<br />
そのため、繰り返しの置換のときにも、オプションを指定する必要があります。<br />
たとえば、繰り返しの置換時にも g オプションを指定したい場合には、以下のようになります。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/g<br />
:&g<br />
</syntaxhighlight><br />
== 全体にも繰り返しが実行できる ==<br />
ここでは、全体に対する置換の繰り返しを紹介します。<br />
ただ単に、レンジを % で指定するだけになります。<br />
<syntaxhighlight lang="vim"><br />
:%s/foo/bar/<br />
:%&<br />
</syntaxhighlight><br />
<br />
g オプションを使用する場合は、このようになります。<br />
<syntaxhighlight lang="vim"><br />
:%s/foo/bar/g<br />
:%&g<br />
</syntaxhighlight><br />
== コマンドの履歴から繰り返す方法 ==<br />
ここでは、 :& を紹介することが目的ではありますが、最後の置換を繰り返す方法として、履歴を使う方法もあります。<br />
<br />
''':''' (コロン) を打ち、そのあとに C-f (コントロール f) で、コマンドの履歴を参照できます。最後の置換まで、移動して、 Enter を押すだけで、最後の置換を繰り返すことができます。もちろん、最後以外の置換を探して、実行することもできます。<br />
<syntaxhighlight lang="vim"><br />
:<C-f><br />
</syntaxhighlight><br />
== 関連項目 ==<br />
* [[vimの検索と置換]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E6%A4%9C%E7%B4%A2%E3%81%A8%E7%BD%AE%E6%8F%9B&diff=245
vimの検索と置換
2017-06-11T14:34:39Z
<p>Daemon: /* vimの置換 */</p>
<hr />
<div>[[vim]]では、非常に便利な'''検索'''と'''置換'''の機能が提供されています。[[vimの検索と置換]]を活かさずに、[[vim]]を使用するのは、非常にもったいないです。<br />
<br />
'''読み方'''<br />
;[[vim]]:ぶぃむ,ゔぃむ<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]では、非常に便利な'''検索'''と'''置換'''の機能が提供されています。[[vimの検索と置換]]を活かさずに、[[vim]]を使用するのは、非常にもったいないです。<br />
== vimの検索 ==<br />
* [[vimの検索のハイライトを消す方法]]<br />
* [[vimの検索でマルチインクリメンタルハイライトを実現するincsearch.vim]]<br />
== vimの置換 ==<br />
=== vimの置換の基本 ===<br />
* [[vimで確認をしながら文字列を置換する方法]]<br />
* [[vimの矩形ビジュアルモードで矩形選択範囲内を置換する]]<br />
* [[vimの置換のデミリタはスラッシュ以外も利用できる]]<br />
* [[vimの置換でスラッシュをエスケープせずに置換する方法]]<br />
* [[vimの文字列置換で置換後の文字列に改行を含める方法]]<br />
* [[vimの最後の置換を繰り返す方法]]<br />
=== vimの置換での削除テクニック ===<br />
* [[vimで改行だけの空行を削除する方法]]<br />
* [[vimでタブやスペースだけの空白行を削除する方法]]<br />
* [[vimで行末のタブやスペースの空白を削除する方法]]<br />
<br />
== まとめ ==<br />
* [[vimのパターン検索と置換で知っておくべきこと]]<br />
== 関連項目 ==<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E7%BD%AE%E6%8F%9B%E3%81%AE%E3%83%87%E3%83%9F%E3%83%AA%E3%82%BF%E3%81%AF%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E4%BB%A5%E5%A4%96%E3%82%82%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%82%8B&diff=244
vimの置換のデミリタはスラッシュ以外も利用できる
2017-06-11T14:29:50Z
<p>Daemon: </p>
<hr />
<div>[[vim]]の置換では、よくデミリタとしてスラッシュ(/)が利用されますが、実はスラッシュ以外も利用できます。スラッシュ以外を利用することで、/ をエスケープせずに使うといったこともできます。<br />
<br />
'''読み方'''<br />
;置換:ちかん<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]では、 :s コマンドを利用して、文字列の'''置換''' を行います。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/<br />
</syntaxhighlight><br />
<br />
置換コマンド、検索パターン、置換後のテキストを区切るための'''デミリタ'''(区切り文字)として、スラッシュ (/) を利用していることが多いのではないでしょうか?<br />
その背景には、例として、 スラッシュが利用されることが多いからではないかと思います。<br />
<br />
vim のヘルプでも、はじめに出てくる例がスラッシュだったりします。<br />
以下は、 vim の日本語のヘルプの抜粋です。<br />
ヘルプをよんでいくと、スラッシュ以外の例が出てきます。<br />
<syntaxhighlight lang="vim"><br />
4.2 置換 *:substitute*<br />
*:s* *:su*<br />
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]<br />
[range] の各行で {pattern} のマッチを {string} に置き<br />
換える。<br />
{pattern}については|pattern|を参照すること。<br />
{string} は普通の文字列でもよいし、特別な指定方法を使っ<br />
てもよい。|sub-replace-special| を参照。<br />
[range] と [count] が指定されないと、現在行内でのみ置<br />
換を行う。<br />
[count] が指定されると、[range] の最終行から数えて<br />
[count] 行で置換を行う。[range] が指定されないと、現在<br />
行から開始する。<br />
|cmdline-ranges| も参照。<br />
フラグについては |:s_flags| を参照。<br />
</syntaxhighlight><br />
== スラッシュ以外の区切り文字をデミリタとして使えるもの ==<br />
いろいろな記号が利用できます。<br />
* コロン (:)<br />
* セミコロン (;)<br />
* エクスクラ メーション・マーク (exclamation mark) (!)<br />
* アットマーク (@)<br />
* シャープ (#)<br />
* アスタリスク (*)<br />
* ドット (.)<br />
* カンマ (,)<br />
<br />
逆に使えないものとして、パイプ (|) が挙げられます。<br />
== スラッシュ以外の区切り文字をデミリタとして使う例 ==<br />
よくある置換の例を挙げます。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/<br />
</syntaxhighlight><br />
<br />
さて、上の例のデミリタを変えて、例を示します。<br />
<syntaxhighlight lang="vim"><br />
:s!foo!bar!<br />
:s:foo:bar:<br />
:s;foo;bar;<br />
:s@foo@bar@<br />
:s.foo.bar.<br />
:s#foo#bar#<br />
</syntaxhighlight><br />
== スラッシュ以外を使う利点は? ==<br />
デミリタとして、スラッシュ以外を使う利点ですが、スラッシュをエスケープせずにパターンや置換後のテキストに使えることではないでしょうか。<br />
パターンや置換後のテキストの指定に、スラッシュを使いたいときに、デミリタにスラッシュを使っている場合、バックスラッシュでスラッシュをエスケープしなければなりません。<br />
<br />
スラッシュをエスケープしはじめると、コマンドが読みにくくなってしまい、なにがなんだかわからなくなってしまう方もいるのではないでしょうか?<br />
<syntaxhighlight lang="vim"><br />
:s/foo/https:\/\/foo.com\//<br />
</syntaxhighlight><br />
デミリタをシャープ(#)に変えてみるとスッキリした形になります。<br />
<syntaxhighlight lang="vim"><br />
:s#foo#https://foo.com/#<br />
</syntaxhighlight><br />
ほら、とっても読みやすいでしょ?<br />
<br />
== まとめ ==<br />
* 置換のデミリタはスラッシュ以外も利用できる<br />
* パターンや置換後のテキストにスラッシュを使いたい場合には、スラッシュ以外のデミリタを利用する<br />
* パターンや置換後のテキストに出てこない記号でデミリタを代替するとエスケープレスで読みやすいコマンドが書ける<br />
== 関連項目 ==<br />
* [[vimの検索と置換]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E7%BD%AE%E6%8F%9B%E3%81%AE%E3%83%87%E3%83%9F%E3%83%AA%E3%82%BF%E3%81%AF%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E4%BB%A5%E5%A4%96%E3%82%82%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%82%8B&diff=243
vimの置換のデミリタはスラッシュ以外も利用できる
2017-06-11T14:27:03Z
<p>Daemon: /* スラッシュ以外を使う利点は? */</p>
<hr />
<div>[[vim]]の置換では、よくデミリタとしてスラッシュ(/)が利用されますが、実はスラッシュ以外も利用できます。スラッシュ以外を利用することで、/ をエスケープせずに使うといったこともできます。<br />
<br />
'''読み方'''<br />
;置換:ちかん<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]では、 :s コマンドを利用して、文字列の'''置換''' を行います。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/<br />
</syntaxhighlight><br />
<br />
置換コマンド、検索パターン、置換後のテキストを区切るための'''デミリタ'''(区切り文字)として、スラッシュ (/) を利用していることが多いのではないでしょうか?<br />
その背景には、例として、 スラッシュが利用されることが多いからではないかと思います。<br />
<br />
実際に、 vim Noヘルプでも、例がスラッシュだったりします。<br />
以下は、 vim の日本語のヘルプの抜粋です。<br />
<syntaxhighlight lang="vim"><br />
4.2 置換 *:substitute*<br />
*:s* *:su*<br />
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]<br />
[range] の各行で {pattern} のマッチを {string} に置き<br />
換える。<br />
{pattern}については|pattern|を参照すること。<br />
{string} は普通の文字列でもよいし、特別な指定方法を使っ<br />
てもよい。|sub-replace-special| を参照。<br />
[range] と [count] が指定されないと、現在行内でのみ置<br />
換を行う。<br />
[count] が指定されると、[range] の最終行から数えて<br />
[count] 行で置換を行う。[range] が指定されないと、現在<br />
行から開始する。<br />
|cmdline-ranges| も参照。<br />
フラグについては |:s_flags| を参照。<br />
</syntaxhighlight><br />
== スラッシュ以外の区切り文字をデミリタとして使えるもの ==<br />
いろいろな記号が利用できます。<br />
* コロン (:)<br />
* セミコロン (;)<br />
* エクスクラ メーション・マーク (exclamation mark) (!)<br />
* アットマーク (@)<br />
* シャープ (#)<br />
* アスタリスク (*)<br />
* ドット (.)<br />
* カンマ (,)<br />
<br />
逆に使えないものとして、パイプ (|) が挙げられます。<br />
== スラッシュ以外の区切り文字をデミリタとして使う例 ==<br />
よくある置換の例を挙げます。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/<br />
</syntaxhighlight><br />
<br />
さて、上の例のデミリタを変えて、例を示します。<br />
<syntaxhighlight lang="vim"><br />
:s!foo!bar!<br />
:s:foo:bar:<br />
:s;foo;bar;<br />
:s@foo@bar@<br />
:s.foo.bar.<br />
:s#foo#bar#<br />
</syntaxhighlight><br />
== スラッシュ以外を使う利点は? ==<br />
デミリタとして、スラッシュ以外を使う利点ですが、スラッシュをエスケープせずにパターンや置換後のテキストに使えることではないでしょうか。<br />
パターンや置換後のテキストの指定に、スラッシュを使いたいときに、デミリタにスラッシュを使っている場合、バックスラッシュでスラッシュをエスケープしなければなりません。<br />
<br />
スラッシュをエスケープしはじめると、コマンドが読みにくくなってしまい、なにがなんだかわからなくなってしまう方もいるのではないでしょうか?<br />
<syntaxhighlight lang="vim"><br />
:s/foo/https:\/\/foo.com\//<br />
</syntaxhighlight><br />
デミリタをシャープ(#)に変えてみるとスッキリした形になります。<br />
<syntaxhighlight lang="vim"><br />
:s#foo#https://foo.com/#<br />
</syntaxhighlight><br />
ほら、とっても読みやすいでしょ?<br />
<br />
== まとめ ==<br />
* 置換のデミリタはスラッシュ以外も利用できる<br />
* パターンや置換後のテキストにスラッシュを使いたい場合には、スラッシュ以外のデミリタを利用する<br />
* パターンや置換後のテキストに出てこない記号でデミリタを代替するとエスケープレスで読みやすいコマンドが書ける<br />
== 関連項目 ==<br />
* [[vimの検索と置換]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E7%BD%AE%E6%8F%9B%E3%81%AE%E3%83%87%E3%83%9F%E3%83%AA%E3%82%BF%E3%81%AF%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E4%BB%A5%E5%A4%96%E3%82%82%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%82%8B&diff=242
vimの置換のデミリタはスラッシュ以外も利用できる
2017-06-11T12:05:27Z
<p>Daemon: ページの作成:「vimの置換では、よくデミリタとしてスラッシュ(/)が利用されますが、実はスラッシュ以外も利用できます。スラッシュ以外...」</p>
<hr />
<div>[[vim]]の置換では、よくデミリタとしてスラッシュ(/)が利用されますが、実はスラッシュ以外も利用できます。スラッシュ以外を利用することで、/ をエスケープせずに使うといったこともできます。<br />
<br />
'''読み方'''<br />
;置換:ちかん<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]では、 :s コマンドを利用して、文字列の'''置換''' を行います。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/<br />
</syntaxhighlight><br />
<br />
置換コマンド、検索パターン、置換後のテキストを区切るための'''デミリタ'''(区切り文字)として、スラッシュ (/) を利用していることが多いのではないでしょうか?<br />
その背景には、例として、 スラッシュが利用されることが多いからではないかと思います。<br />
<br />
実際に、 vim Noヘルプでも、例がスラッシュだったりします。<br />
以下は、 vim の日本語のヘルプの抜粋です。<br />
<syntaxhighlight lang="vim"><br />
4.2 置換 *:substitute*<br />
*:s* *:su*<br />
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]<br />
[range] の各行で {pattern} のマッチを {string} に置き<br />
換える。<br />
{pattern}については|pattern|を参照すること。<br />
{string} は普通の文字列でもよいし、特別な指定方法を使っ<br />
てもよい。|sub-replace-special| を参照。<br />
[range] と [count] が指定されないと、現在行内でのみ置<br />
換を行う。<br />
[count] が指定されると、[range] の最終行から数えて<br />
[count] 行で置換を行う。[range] が指定されないと、現在<br />
行から開始する。<br />
|cmdline-ranges| も参照。<br />
フラグについては |:s_flags| を参照。<br />
</syntaxhighlight><br />
== スラッシュ以外の区切り文字をデミリタとして使えるもの ==<br />
いろいろな記号が利用できます。<br />
* コロン (:)<br />
* セミコロン (;)<br />
* エクスクラ メーション・マーク (exclamation mark) (!)<br />
* アットマーク (@)<br />
* シャープ (#)<br />
* アスタリスク (*)<br />
* ドット (.)<br />
* カンマ (,)<br />
<br />
逆に使えないものとして、パイプ (|) が挙げられます。<br />
== スラッシュ以外の区切り文字をデミリタとして使う例 ==<br />
よくある置換の例を挙げます。<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/<br />
</syntaxhighlight><br />
<br />
さて、上の例のデミリタを変えて、例を示します。<br />
<syntaxhighlight lang="vim"><br />
:s!foo!bar!<br />
:s:foo:bar:<br />
:s;foo;bar;<br />
:s@foo@bar@<br />
:s.foo.bar.<br />
:s#foo#bar#<br />
</syntaxhighlight><br />
== スラッシュ以外を使う利点は? ==<br />
デミリタとして、スラッシュ以外を使う利点ですが、スラッシュをエスケープせずにパターンや置換後のテキストに使えることではないでしょうか。<br />
パターンや置換後のテキストの指定に、スラッシュを使いたいときに、デミリタをスラッシュしていると、バックスラッシュでスラッシュをエスケープしなければなりません。<br />
<br />
スラッシュをエスケープしはじめると、コマンドが読みにくくなってしまい、なにがなんだかわからなくなってしまう方もいるのではないでしょうか?<br />
<syntaxhighlight lang="vim"><br />
:s/foo/https:\/\/foo.com\//<br />
</syntaxhighlight><br />
デミリタをシャープ(#)に変えてみるとスッキリした形になります。<br />
<syntaxhighlight lang="vim"><br />
:s#foo#https://foo.com/#<br />
</syntaxhighlight><br />
ほら、とっても読みやすいでしょ?<br />
== まとめ ==<br />
* 置換のデミリタはスラッシュ以外も利用できる<br />
* パターンや置換後のテキストにスラッシュを使いたい場合には、スラッシュ以外のデミリタを利用する<br />
* パターンや置換後のテキストに出てこない記号でデミリタを代替するとエスケープレスで読みやすいコマンドが書ける<br />
== 関連項目 ==<br />
* [[vimの検索と置換]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:NewArticle&diff=241
テンプレート:NewArticle
2017-06-11T11:50:10Z
<p>Daemon: </p>
<hr />
<div>[[x]]とは、<br />
<br />
'''読み方'''<br />
;[[x]]:<br />
__TOC__<br />
<br />
== 概要 ==<br />
<br />
== 関連項目 ==<br />
* [[x]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E6%A4%9C%E7%B4%A2%E3%81%A8%E7%BD%AE%E6%8F%9B&diff=240
vimの検索と置換
2017-06-11T10:04:28Z
<p>Daemon: /* vimの置換の基本 */</p>
<hr />
<div>[[vim]]では、非常に便利な'''検索'''と'''置換'''の機能が提供されています。[[vimの検索と置換]]を活かさずに、[[vim]]を使用するのは、非常にもったいないです。<br />
<br />
'''読み方'''<br />
;[[vim]]:ぶぃむ,ゔぃむ<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]では、非常に便利な'''検索'''と'''置換'''の機能が提供されています。[[vimの検索と置換]]を活かさずに、[[vim]]を使用するのは、非常にもったいないです。<br />
== vimの検索 ==<br />
* [[vimの検索のハイライトを消す方法]]<br />
* [[vimの検索でマルチインクリメンタルハイライトを実現するincsearch.vim]]<br />
== vimの置換 ==<br />
=== vimの置換の基本 ===<br />
* [[vimで確認をしながら文字列を置換する方法]]<br />
* [[vimの矩形ビジュアルモードで矩形選択範囲内を置換する]]<br />
* [[vimの置換のデミリタはスラッシュ以外も利用できる]]<br />
* [[vimの置換でスラッシュをエスケープせずに置換する方法]]<br />
* [[vimの文字列置換で置換後の文字列に改行を含める方法]]<br />
<br />
=== vimの置換での削除テクニック ===<br />
* [[vimで改行だけの空行を削除する方法]]<br />
* [[vimでタブやスペースだけの空白行を削除する方法]]<br />
* [[vimで行末のタブやスペースの空白を削除する方法]]<br />
== まとめ ==<br />
* [[vimのパターン検索と置換で知っておくべきこと]]<br />
== 関連項目 ==<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E6%A4%9C%E7%B4%A2%E3%81%A8%E7%BD%AE%E6%8F%9B&diff=239
vimの検索と置換
2017-06-10T04:10:16Z
<p>Daemon: </p>
<hr />
<div>[[vim]]では、非常に便利な'''検索'''と'''置換'''の機能が提供されています。[[vimの検索と置換]]を活かさずに、[[vim]]を使用するのは、非常にもったいないです。<br />
<br />
'''読み方'''<br />
;[[vim]]:ぶぃむ,ゔぃむ<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]では、非常に便利な'''検索'''と'''置換'''の機能が提供されています。[[vimの検索と置換]]を活かさずに、[[vim]]を使用するのは、非常にもったいないです。<br />
== vimの検索 ==<br />
* [[vimの検索のハイライトを消す方法]]<br />
* [[vimの検索でマルチインクリメンタルハイライトを実現するincsearch.vim]]<br />
== vimの置換 ==<br />
=== vimの置換の基本 ===<br />
* [[vimで確認をしながら文字列を置換する方法]]<br />
* [[vimの矩形ビジュアルモードで矩形選択範囲内を置換する]]<br />
* [[vimの文字列置換で置換後の文字列に改行を含める方法]]<br />
=== vimの置換での削除テクニック ===<br />
* [[vimで改行だけの空行を削除する方法]]<br />
* [[vimでタブやスペースだけの空白行を削除する方法]]<br />
* [[vimで行末のタブやスペースの空白を削除する方法]]<br />
== まとめ ==<br />
* [[vimのパターン検索と置換で知っておくべきこと]]<br />
== 関連項目 ==<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&diff=238
メインページ
2017-06-10T04:10:10Z
<p>Daemon: </p>
<hr />
<div>== Vimに軽く入門する ==<br />
{{basic}}<br />
<br />
* [[キーストローク数の少なさを競うVimGolf]]<br />
<br />
* [[vimを終了する方法]]<br />
* [[vimでファイルを開く方法]]<br />
<br />
* [[vimで行を複製する方法]]<br />
<br />
* [[vimの検索と置換]]<br />
<br />
<br />
== Vimプラグインとスクリプト ==<br />
* [[vimのプラグイン管理]]<br />
* [[vimのプラグイン]]<br />
* [[vimスクリプト]]<br />
== Vimでホゲホゲする ==<br />
* [[vimでバイナリファイルを扱う]]<br />
* [[vimの起動が遅いときの対策]]<br />
* [[vimでコマンドを実行して新しいバッファに書き込む]]<br />
* [[vimで長い行を表示させる方法]]<br />
* [[vimで設定ファイルvimrcやプラグインを読み込まずに起動する方法]]<br />
* [[vimでMarkdownをプレビューする方法]]<br />
* [[gvimでShift InsertでS-Insertが入力されて貼り付けできない]]<br />
== 統合開発環境としてのvim ==<br />
{{ide}}<br />
== 便利なプラグイン ==<br />
* [[vimプラグイン NERDTree ツリー型エクスプローラ]]<br />
== データベース ==<br />
* [[vimのdbext.vimでSQLデータベースを操作する方法]]<br />
== vimの新機能 ==<br />
* [[vim 8.0の新機能を解説します]]<br />
== neovim ==<br />
* [[neovim]]<br />
* [[neovimをFreeBSDにpkgコマンドでインストールする]]<br />
* [[neovim 0.1.1をビルドする]]<br />
== ブラウザとvi ==<br />
* [[ChromeやFirefoxでウェブページのtextareaをvi化するエクステンションwasavi]]</div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E6%A4%9C%E7%B4%A2%E3%81%AE%E3%83%8F%E3%82%A4%E3%83%A9%E3%82%A4%E3%83%88%E3%82%92%E6%B6%88%E3%81%99%E6%96%B9%E6%B3%95&diff=237
vimの検索のハイライトを消す方法
2017-06-10T04:09:09Z
<p>Daemon: /* 関連項目 */</p>
<hr />
<div>[[vim]]の検索は、マッチした文字列を'''ハイライト'''できますが、検索後に'''ハイライト'''されたままになります。簡単に'''ハイライト'''を消す(クリア)できます。その方法をここでは紹介します。<br />
<br />
'''読み方'''<br />
;nohlsearch: のー えいちえる さーち<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]] の検索は、 hlsearch オプションにより、検索のマッチした文字列の'''ハイライト'''('''強調表示''')ができます。ハイライト表示は、非常に便利ですが、ときに、ハイライト表示が邪魔に感じるときもあります。<br />
<br />
そういった場合には、ハイライト表示を消すことで、快適な編集作業を継続できます。<br />
<br />
ここでは、ハイライト表示の簡単な消し方を紹介します。<br />
== ハイライトを消す方法 ==<br />
[[vim]]の検索のハイライト( hlsearch ) は、 nohlsearch コマンドで簡単に消せます。以下の例は、短縮形コマンドです。<br />
<syntaxhighlight lang="vim"><br />
:noh<br />
</syntaxhighlight><br />
== ハイライトを消すキーバインドを追加する ==<br />
''':noh''' をタイプするのが面倒という方は、キーバインドの設定をオススメします。 例えば、 '''ESC''' を2回叩いて、ハイライトを消す設定は、以下の通りです。<br />
<syntaxhighlight lang="vim"><br />
nmap <Esc><Esc> :nohl<CR><br />
</syntaxhighlight><br />
== nohlsearch ってなに? ==<br />
'''nohlsearch''' は、 no highlight search の略でしょう。<br />
== ハイライト検索そのものをやめる方法 ==<br />
''':noh''' では、ハイライトされている表示を消すだけですが、ハイライト検索 (hlsearch) そのものをやめる場合には、以下の設定を行います。<br />
<syntaxhighlight lang="vim"><br />
:set nohlsearch<br />
</syntaxhighlight><br />
もしくは<br />
<syntaxhighlight lang="vim"><br />
:set hlsearch!<br />
</syntaxhighlight><br />
です。<br />
<br />
これで、検索してマッチしたハイライトはされなくなります。<br />
== まとめ ==<br />
* :noh で検索のハイライトを消すことができます。<br />
* キーバインドを設定することで、検索のハイライトをより簡単に消すことができます。<br />
== 関連項目 ==<br />
* [[vimの検索と置換]]<br />
* [[vimのパターン検索と置換で知っておくべきこと]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=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&diff=236
vimのパターン検索と置換で知っておくべきこと
2017-06-10T04:06:49Z
<p>Daemon: </p>
<hr />
<div>[[vim]]には、強力な検索と置換の機能があります。ワンタッチでできる検索、インクリメンタルサーチ、検索履歴、正規表現、globalによるコマンド実行など多くの機能があります。これらを使いこなすことで、編集スピードを加速させることができます。ここでは、知っておくべき、いくつかのエッセンスを取り上げます。<br />
<br />
'''読み方'''<br />
;[[vimのパターン検索と置換で知っておくべきこと]]:ぶいあいえむ の ぱたーん けんさく と ちかん で しっておくべきこと<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]には、多くの機能があります。検索と置換も強力です。[[vim]]使いとして、知っておくべき要素がいくつもあります。<br />
<br />
[[vimのプラグイン]]で、検索、置換を強化することもできます。<br />
<br />
== 検索 ==<br />
vimには、/ (検索)とglobal(検索にも使える)があります。<br />
* /, ?, *, #, g*, g#<br />
* :g, :v<br />
* vimgrep<br />
== / での検索 ==<br />
=== 次のパターンを検索する ===<br />
/ や ? で検索を開始し、次のマッチするパターンを検索するには、 n や N (前) を使います。<br />
=== 検索の設定 ===<br />
* インクリメンタルサーチ <syntaxhighlight lang="vim"><br />
set incsearch<br />
</syntaxhighlight><br />
* ハイライトサーチ <syntaxhighlight lang="vim"><br />
set hlsearch<br />
</syntaxhighlight><br />
=== 検索の履歴 ===<br />
* / + C-f<br />
* 検索の履歴も編集できる<br />
* 検索の履歴も検索できる<br />
=== 検索のパターン ===<br />
* 正規表現でも検索できる<br />
* /^main<br />
* 大文字小文字を無視する <syntaxhighlight lang="vim"><br />
/ignorecase\c<br />
</syntaxhighlight><br />
** vimrc で設定することもできます。 <syntaxhighlight lang="vim"><br />
set ignorecase<br />
</syntaxhighlight><br />
* 賢い smartcase というオプションもあります。<syntaxhighlight lang="vim"><br />
set smartcase<br />
</syntaxhighlight><br />
=== 正規表現のメタ文字の扱い ===<br />
[[vim]]の正規表現には、メタ文字の扱いに関して、4つのモードがあります。<br />
* magic (デフォルト)<br />
* very magic<br />
* nomagic<br />
* very nomagic<br />
=== magic ===<br />
/, :global, :vglobal, :subsutitute のパターン部分で正規表現が使えます。<br />
それらのコマンドは、パターンのメタ文字の扱いのオプションを持っています。<br />
デフォルトでは、 magic と呼ばれるオプションです。<br />
<br />
現在のオプションを確認する方法は、以下のコマンドです。<br />
<syntaxhighlight lang="vim"><br />
:set magic?<br />
</syntaxhighlight><br />
<br />
[[vim]]のデフォルトのパターン検索で、正規表現を使おうとすると「エスケープ祭り」が発生します。<br />
fooかbarを検索する場合、以下のパターンになります。<br />
<syntaxhighlight lang="vim"><br />
/\(foo\|bar\)<br />
</syntaxhighlight><br />
<br />
[[vim]]のmagicのパターンでは、違和感を感じやすいと思います。<br />
{|class="wikitable"<br />
|+ magicのメタ文字<br />
! エスケープの有無<br />
! メタ文字<br />
|-<br />
| エスケープ不要<br />
| ., *, ^, $<br />
|-<br />
| エスケープが必要<br />
| +, ?, (, ), &pipe;<br />
|}<br />
=== very magic ===<br />
very magicは、Perlのような正規表現になります。<br />
<br />
very magicに設定する「 set hoge 」 のようなオプションは存在しません。very magic を有効にするには、パターンに \v を入力します。<br />
<br />
「エスケープ祭り」が起こした、 fooかbarを検索する場合のパターンは、以下のようにエレガントになりました。<br />
<syntaxhighlight lang="vim"><br />
/\v(foo|bar)<br />
</syntaxhighlight><br />
<br />
常に very magic のモードにしておきたいと思うなら、 .vimrc で map するのがよいでしょう。<br />
<syntaxhighlight lang="vim"><br />
:nnoremap / /\v<br />
</syntaxhighlight><br />
<br />
== *と#での検索 ==<br />
*と#を使用することで、カーソルの単語を検索できます。<br />
1つめのfooで検索すると2つめのfooにマッチします。<br />
foo<br />
foo bar<br />
foobar<br />
<br />
g*, g# なら、カーソルの単語の前後に関係なく検索ができます。<br />
foo に対して検索するときに foobar にもマッチするという意味です。<br />
1つめのfooで検索すると2つめ(foo)と3つめ(foobar)のfooにマッチします。<br />
<br />
== gdの検索 ==<br />
プログラミング言語での検索の話です。<br />
<br />
:gd:カレントの変数のローカルの宣言を検索することができます。<br />
;gD:カレントの変数のグローバルの宣言を検索することができます。<br />
<br />
== :g, :global とは ==<br />
「:global(:g)」 とは、一見、検索コマンドに見えますが、本当は、パターンにマッチした行に ex コマンドを実行するためのコマンドです。<br />
=== :help :g ===<br />
「:g」のヘルプを見てみましょう。<br />
<syntaxhighlight lang="vim"><br />
:g :global E147 E148<br />
:[range]g[lobal]/{pattern}/[cmd]<br />
[range]の範囲で{pattern}にマッチする行に対して、Exコマ<br />
ンド[cmd](省略した場合 ":p")を実行する。<br />
<br />
:[range]g[lobal]!/{pattern}/[cmd]<br />
[range]の範囲で{pattern}にマッチしない行に対して、Exコ<br />
マンド[cmd](省略した場合 ":p")を実行する。<br />
<br />
:v :vglobal<br />
:[range]v[global]/{pattern}/[cmd]<br />
:g! と同じ。<br />
</syntaxhighlight><br />
<br />
=== :gの例 ===<br />
foo のある行を削除します。<br />
<syntaxhighlight lang="vim"><br />
:g/foo/d<br />
</syntaxhighlight><br />
<br />
foo のある行の hoge を meta に置換します。<br />
<syntaxhighlight lang="vim"><br />
:g/foo/%s/hoge/meta/g<br />
</syntaxhighlight><br />
<br />
=== :vglobal :v ===<br />
\:v は、:g の否定です。<br />
foo のない行を削除します。<br />
<syntaxhighlight lang="vim"><br />
:v/foo/d<br />
</syntaxhighlight><br />
<br />
foo のない行の hoge を meta に置換します。<br />
<syntaxhighlight lang="vim"><br />
:v/foo/%s/hoge/meta/g<br />
</syntaxhighlight><br />
<br />
=== :g norm ===<br />
norm を利用すると vim のコマンドを実行できます。<br />
echo の行を次の行と連結(j)します。<br />
<syntaxhighlight lang="vim"><br />
:g/^ecno/norm J<br />
</syntaxhighlight><br />
<pre><br />
echo<br />
"hoge";<br />
<br />
echo<br />
"bar";<br />
</pre><br />
<br />
== vimgrep ==<br />
=== vimgrep とは ===<br />
[[vim]]内部からgrepができます。grepするために、[[vim]]を中断(C-z )する必要はありません。grepの結果を[[vim]]で閲覧し、行きたい行へジャンプできます。<br />
<br />
カレントのファイルをgrepするなら、以下のコマンドです。<br />
<syntaxhighlight lang="vim"><br />
:vimgrep foo %<br />
</syntaxhighlight><br />
<br />
foo bar を検索するなら<br />
<syntaxhighlight lang="vim"><br />
:vimgrep /foo bar/ %<br />
</syntaxhighlight><br />
などと囲む必要があります。<br />
<br />
マッチした行をquickfix-windowを確認するには、以下のコマンドで確認できます。<br />
<syntaxhighlight lang="vim"><br />
:cwindow<br />
</syntaxhighlight><br />
<br />
quickfix-window で表示されるのは、以下のような文字列です。<br />
search.txt|7 col 1| foo bar hoge<br />
search.txt|8 col 1| foo bar hoge<br />
search.txt|9 col 2| foo bar hoge<br />
<br />
quickfix-window を最初から開くには、 | cwin を使用します。<br />
<syntaxhighlight lang="vim"><br />
:vimgrep foo %|cwin<br />
</syntaxhighlight><br />
=== vimgrep での対称の指定 ===<br />
; vimgrep /pattern/ **: カレントディレクトリ以下のすべてのファイルを対称にする(再帰的)<br />
; vimgrep /pattern/ foo/**: ディレクトリ foo 以下のすべてのファイルを対称にする(再帰的)<br />
; vimgrep /pattern/ foo/*: ディレクトリ foo 以下のファイルを対称にする<br />
; vimgrep /pattern/ foo/**/*.c: ディレクトリ foo 以下のファイル *.c を対称にする(再帰的)<br />
<br />
=== vimgrep と/検索の違い ===<br />
<br />
{|class="wikitable"<br />
|+ vimgrepと/の違い<br />
! 項目<br />
! /<br />
! vimgrep<br />
|-<br />
| quickfix-window<br />
| 使えない<br />
| 使える<br />
|-<br />
| ヒット件数<br />
| わからない<br />
| わかる<br />
|-<br />
| 正規表現<br />
| 使える<br />
| 使える<br />
|-<br />
| 次のマッチへの移動<br />
| n<br />
| :cnext (:cn)<br />
|-<br />
| 前のマッチへの移動<br />
| N<br />
| :cpreious (:cp), :cN (:cNext)<br />
|-<br />
| 検索対象<br />
| カレントのバッファ<br />
| 引数で指定する<br />
|}<br />
<br />
== 置換 ==<br />
* :s, :%s<br />
* :g/%s/<br />
=== :sによる置換 ===<br />
カーソルのある行の置換は、<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar<br />
</syntaxhighlight><br />
です。行にfooが何度も出現しても、最初のfooだけが置換されます。<br />
<br />
ファイル(バッファ)全体の置換は、<br />
<syntaxhighlight lang="vim"><br />
:%s/foo/bar<br />
</syntaxhighlight><br />
です。 行にfooが何度も出現しても、最初のfooだけが置換されます。 行の置換との違いは、% があるだけです。<br />
<br />
カーソルのある行の置換で、かつ何度も置換するには、<br />
<syntaxhighlight lang="vim"><br />
:s/foo/bar/g<br />
</syntaxhighlight><br />
です。 g オプションを追加します。<br />
<br />
ファイル全体も同様に g オプションをつけると、すべての行で、何度も置換されます。<br />
<syntaxhighlight lang="vim"><br />
:%s/foo/bar/g<br />
</syntaxhighlight><br />
=== 置換時に確認する ===<br />
置換するときに、本当にそれを置換するか、確認したい場合は、 c オプションを指定します。<br />
<syntaxhighlight lang="vim"><br />
:%s/foo/bar/c<br />
</syntaxhighlight><br />
<br />
gとcのオプションを両方指定する場合は、以下の通りです。<br />
<syntaxhighlight lang="vim"><br />
:%s/foo/bar/gc<br />
</syntaxhighlight><br />
<br />
複雑な置換条件で、目で確認しながらのほうが速い場合には、c を使うといいでしょう。<br />
<br />
=== 前方参照 ===<br />
正規表現では、前方参照が使われます。正規表現で置換することで、より置換作業を簡単に、高速にできます。<br />
(, ) でキャプチャした文字列を \1, \2, \3 という形で参照できます。<br />
<br />
前にfooがあって、うしろに hoge か meta がある場合に、置換する例です。<br />
<br />
foo 123 hoge<br />
foo 456 meta<br />
foo 789 null<br />
<br />
<syntaxhighlight lang="vim"><br />
:%s/foo \(.*\) \(hoge\|meta\)$/\2 = \1/<br />
</syntaxhighlight><br />
<br />
hoge = 123<br />
meta = 456<br />
foo 789 null<br />
<br />
このエスケープ祭りも very magic で綺麗にできます。<br />
<syntaxhighlight lang="vim"><br />
:%s/\vfoo (.*) (hoge|meta)$/\2 = \1/<br />
</syntaxhighlight><br />
=== ビジュアルモードと置換 ===<br />
ビジュアルモードで選択している範囲だけ置換することができます。<br />
# ビジュアルモードで範囲を選択する<br />
# :s/foo/bar で置換を実行する。 <syntaxhighlight lang="vim"><br />
:'<,'>s/foo/bar<br />
</syntaxhighlight><br />
<br />
=== すべてのバッファで置換する ===<br />
開いているバッファすべてに置換コマンドを実行する例です。 すべてのバッファを操作するには、argdoコマンドを使用します。 update をつけることで、変更した場合に、書き込み(:w)します。<br />
<syntaxhighlight lang="vim"><br />
:argdo %s/foo/bar/g | update<br />
</syntaxhighlight><br />
<br />
== Perl/Rubyのようなの正規表現 eregex.vim ==<br />
eregex.vimというプラグインでは、Perl/Rubyの正規表現で検索や置換が行えます。デメリットとして、eregex.vim では、インクリメンタルサーチができません。<br />
very magic (/\v) があれば、eregex.vim を使わずとも、ある程度は、不便をせずにやっていけるのではないでしょうか。<br />
<br />
== ビジュアルモードと検索 vim-visualstar ==<br />
ビジュアルモードで選択した文字列を検索する機能を提供するのが thinca/vim-visualstar です。<br />
<syntaxhighlight lang="vim"><br />
NeoBundle 'thinca/vim-visualstar'<br />
</syntaxhighlight><br />
<br />
ビジュアルモードで選択し、 */# などで検索できます。<br />
<br />
== the Silver Searcher ag.vim ==<br />
grep よりも 賢いack, ackよりも高速なag(the Silver Searcher)です。<br />
恩恵としては、vimgrepよりも高速になるだけでしょう。<br />
<syntaxhighlight lang="vim"><br />
NeoBundle 'vim-scripts/ag.vim'<br />
</syntaxhighlight><br />
<br />
検索のやり方は、以下の通りです。<br />
<syntaxhighlight lang="vim"><br />
:Ag foo<br />
</syntaxhighlight><br />
<br />
== Qfreplace ==<br />
Qfreplace は、 grep の結果から置換するためのプラグインです。<br />
<br />
quickfix のウィンドウから Qfreplace を呼び出し、そのバッファを編集すると元のバッファが変更される、というものです。<br />
<syntaxhighlight lang="vim"><br />
NeoBundle 'thinca/vim-qfreplace'<br />
</syntaxhighlight><br />
<br />
<syntaxhighlight lang="vim"><br />
:vimgrep foo %<br />
:cwin<br />
:Qfreplace<br />
:%s/foo/bar/<br />
:w<br />
</syntaxhighlight><br />
<br />
== まとめ ==<br />
* very magic でパターン検索を簡単にできる<br />
* vim-visualstar でビジュアルモードで選択した文字列を検索できる<br />
== 関連項目 ==<br />
* [[vimの検索と置換]]<br />
* [[vimの検索でマルチインクリメンタルハイライトを実現するincsearch.vim]]<br />
* [[vimの矩形ビジュアルモードで矩形選択範囲内を置換する]]<br />
* [[vimの検索のハイライトを消す方法]]<br />
* [[vimで改行だけの空行を削除する方法]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E7%BD%AE%E6%8F%9B%E3%81%A7%E7%BD%AE%E6%8F%9B%E5%BE%8C%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%81%AB%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%82%81%E3%82%8B%E6%96%B9%E6%B3%95&diff=235
vimの文字列置換で置換後の文字列に改行を含める方法
2017-06-10T04:05:59Z
<p>Daemon: /* 関連項目 */</p>
<hr />
<div>[[vim]]では、文字列置換に s コマンド を使います。置換する文字列に「改行」を含めたいこともよくありますし、改行コードを置換したいときもあります。今回は、文字列を置換するときに、リプレイス後の文字列に改行を含める方法を紹介します。<br />
<br />
'''読み方'''<br />
;置換:ちかん<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]] では、文字列置換に<br />
%s/検索パターン/置換後の文字列/オプション<br />
がよく使います。<br />
<br />
行だけなら<br />
:s<br />
を使い、バッファ全体なら<br />
:%s<br />
になります。<br />
<br />
「置換後の文字列」に「改行」を含めたいこともあると思います。私もよく、置換後に改行を入れる、といったことをよくやっています。<br />
== 置換後の文字列に改行を入れるやりかた ==<br />
改行を指定するときには、<br />
C-v Return<br />
を入力します(コントロール + v のあとに リターンキーを押します)。<br />
^M<br />
みたいな文字列が入ります。この '''^M''' が '''改行''' を意味します。<br />
<br />
例えば、 ''',''' (カンマ) を '''改行''' に切り替える場合は<br />
:%s/,/^M/<br />
になります。行のすべての ''',''' (カンマ) を '''改行''' にする場合は、 g オプションをつけます。<br />
:%s/,/^M/g<br />
<br />
<br />
''',''' (カンマ) の後に '''改行''' を追加したい場合だと<br />
:%s/,/,^M/g<br />
となります。<br />
<br />
例えば、 foo を foo 改行 bar みたいにしたいのであれば、こんな感じになります(^M は コントロール +v + 改行です)。<br />
:%s/foo/foo^Mbar/g<br />
<br />
== \r を使う場合 ==<br />
^M の代わりに \r を使うこともできます。<br />
行のすべての ''',''' (カンマ) を '''改行''' にする場合は、 g オプションをつけます。<br />
:%s/,/\r/g<br />
<br />
''',''' (カンマ) の後に '''改行''' を追加したい場合だと<br />
:%s/,/,\r/g<br />
となります。<br />
<br />
== 関連項目 ==<br />
* [[vimの検索と置換]]<br />
* [[vimのパターン検索と置換で知っておくべきこと]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%A7%E6%94%B9%E8%A1%8C%E3%81%A0%E3%81%91%E3%81%AE%E7%A9%BA%E8%A1%8C%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&diff=234
vimで改行だけの空行を削除する方法
2017-06-10T04:05:35Z
<p>Daemon: </p>
<hr />
<div>テキストを編集しているときに、'''空行'''を削除したい場合があります。[[vim]]では、空行(改行だけの行)を簡単に削除できます。その方法をここで紹介します。<br />
<br />
'''読み方'''<br />
;blank line:ぶらんく らいん<br />
__TOC__<br />
<br />
== 概要 ==<br />
空行とは、 <s>空の行</s>です。英語だと'''ブランクライン'''(black line) になります。空行といっても、実際には、「改行だけの行」になります。<br />
<br />
例えば、以下のテキストであれば、2行目が「改行だけの行」(空行)です。<br />
<syntaxhighlight lang="c"><br />
int main (int argc, char *argv[]) {<br />
<br />
}<br />
</syntaxhighlight><br />
それでは、空行の消し方を紹介します。<br />
== 空行を消すコマンド ==<br />
空行を削除する方法は、いくつかあります。<br />
* :v/./d<br />
* :g/^$/d<br />
<br />
この :v/./d は、入力は簡単なのですが、空行の削除後に、テキスト全体がハイライトされてしまうため、 ハイライトを消したい場合は、 :nohl の実行が必要になってしまいます。<br />
<br />
nohl の実行も考えれば、 :g/^$/d のほうが、結果的な入力量も少なく、簡単ということになります。<br />
== nohl について ==<br />
nohl については、 [[vimの検索のハイライトを消す方法]] をご参照下さい。<br />
== 関連項目 ==<br />
* [[vimの検索と置換]]<br />
* [[vimの検索のハイライトを消す方法]]<br />
* [[vimでタブやスペースだけの空白行を削除する方法]]<br />
* [[vimのパターン検索と置換で知っておくべきこと]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%A7%E3%82%BF%E3%83%96%E3%82%84%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%81%A0%E3%81%91%E3%81%AE%E7%A9%BA%E7%99%BD%E8%A1%8C%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&diff=233
vimでタブやスペースだけの空白行を削除する方法
2017-06-10T04:05:30Z
<p>Daemon: </p>
<hr />
<div>[[vim]]では、空白だけで構成される空白行を'''正規表現'''で簡単に削除できます。<br />
<br />
'''読み方'''<br />
;空白行:くうはくぎょう<br />
__TOC__<br />
<br />
== 概要 ==<br />
テキストファイルに<br />
* タブだけの行<br />
* スペースだけの行<br />
* スペースとタブだけの行<br />
のような空白行(空白だけで構成される行)を削除したいときがあります。<br />
<br />
そんな空行を [[vim]] で簡単に消す方法を紹介します。<br />
== タブやスペースだけの空白行を削除する方法 ==<br />
タブやスペースだけの行を消すコマンドは以下の通りです。<br />
<syntaxhighlight lang="vim"><br />
:g/^\s\+$/d<br />
</syntaxhighlight><br />
<br />
gはglobalコマンドで、/^\s\+$/ のパターンを探し、マッチした行を コマンド d で削除します。<br />
\s は文字クラスで、改行以外の空白文字にマッチし、スペースやタブなどにマッチします。<br />
[[vim]]の正規表現(nomagicモード)では、1以上を表す + は、バックスラッシュでエスケープする必要があり、 \+ となっています。<br />
<br />
abc def<br />
(タブ)(タブ)<br />
ghi jkl<br />
(スペース)(タブ)<br />
(スペース)(スペース)<br />
mno p<br />
みたいなテキストがあったときに、上記コマンドを実行すると<br />
abc def<br />
ghi jkl<br />
mno p<br />
といった形いなります。<br />
== タブやスペースや改行だけの空白行を削除する方法 ==<br />
タブやスペースと改行だけの行を消すコマンドは以下の通りです。<br />
<syntaxhighlight lang="vim"><br />
:v/\S/d<br />
</syntaxhighlight><br />
もしくは<br />
<syntaxhighlight lang="vim"><br />
:g/^\s*$/d<br />
</syntaxhighlight><br />
になります。<br />
<br />
文字クラスを0回以上マッチとすることで ^$ にもマッチするため、改行だけの行も削除できるようになります。<br />
純粋に '''改行だけの行''' を削除したい場合は、 [[vimで改行だけの空行を削除する方法]] をご参照下さい。<br />
== \s の意味 ==<br />
正規表現にあたる \s とは、改行以外の空白文字にマッチする[[vim]]の'''文字クラス'''です。<br />
== 関連項目 ==<br />
* [[vimの検索と置換]]<br />
* [[vimで改行だけの空行を削除する方法]]<br />
* [[vimのパターン検索と置換で知っておくべきこと]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%A7%E8%A1%8C%E6%9C%AB%E3%81%AE%E3%82%BF%E3%83%96%E3%82%84%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%81%AE%E7%A9%BA%E7%99%BD%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&diff=232
vimで行末のタブやスペースの空白を削除する方法
2017-06-10T04:05:25Z
<p>Daemon: </p>
<hr />
<div>テキストファイルの行末に、不要な'''タブ'''や'''スペース'''を削除したい場合があります。[[vim]]の正規表現で簡単に削除できます。やり方をいくつか紹介します。<br />
<br />
'''読み方'''<br />
;正規表現:せいきひょうげん<br />
__TOC__<br />
<br />
== 概要 ==<br />
テキストを編集しているときに、行末に、不要なタブやスペースが入っていることに気が付き、削除したいことがあります。テキストファイル中の至る所の行末に、タブやスペースがいくつも入っている場合、1つ1つ消して回るのは、骨が折れます。<br />
<br />
そのようなときに、スマートに対応する方法として、'''正規表現'''を利用した置換があります。<br />
<br />
ここでは、不要なブランクを簡単に削除する方法をいくつか紹介します。<br />
== 行末のタブやスペースを削除するコマンド ==<br />
文字クラス \s を利用して、タブやスペースを簡単に削除できます。<br />
<syntaxhighlight lang="vim"><br />
:%s/\s*$//<br />
</syntaxhighlight><br />
<br />
行末のスペースだけを削除するコマンドは、以下の通りです。<br />
<syntaxhighlight lang="vim"><br />
:%s/ *$//<br />
</syntaxhighlight><br />
<br />
行末のタブだけを削除するコマンドは、以下の通りです。<br />
<syntaxhighlight lang="vim"><br />
:%s/ *$//<br />
</syntaxhighlight><br />
== 自動で削除する方法 ==<br />
ファイルを保存する直前で、行末の空白を削除します。<br />
プログラムを編集して、保存するときに、有効です。<br />
以下の例では、C言語(*.c)と python のコード (*.py) のときに、実行されます。<br />
<syntaxhighlight lang="vim"><br />
aug space<br />
au!<br />
autocmd BufWritePre *.c,*.py :%s/\s\+$//e<br />
aug END<br />
</syntaxhighlight><br />
<br />
拡張子の指定をこのようにすることもできます。<br />
<syntaxhighlight lang="vim"><br />
autocmd BufWritePre *.{c,h,cpp,cc,py,pl} :%s/\s\+$//e<br />
</syntaxhighlight><br />
== 関連項目 ==<br />
* [[vimの検索と置換]]<br />
* [[vimの文字列置換で置換後の文字列に改行を含める方法]]<br />
* [[vimで改行だけの空行を削除する方法]]<br />
* [[vimでタブやスペースだけの空白行を削除する方法]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%A7%E7%A2%BA%E8%AA%8D%E3%82%92%E3%81%97%E3%81%AA%E3%81%8C%E3%82%89%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E7%BD%AE%E6%8F%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&diff=231
vimで確認をしながら文字列を置換する方法
2017-06-10T04:04:56Z
<p>Daemon: </p>
<hr />
<div>[[vim]]の置換では、パターンにマッチしたところを置換しますが、パターンと一致したところを置換するかどうか、確認をしながら、置換を実行することができます。ここでは、確認しながら、置換する方法を紹介します。<br />
<br />
'''読み方'''<br />
;置換:ちかん<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]] で文字列置換をする際に、その文字列は置換してよいのかどうか、確認しながら置換することができます。<br />
<br />
一般的な置換は、<br />
<syntaxhighlight lang="vim"><br />
:%s/foo/bar/<br />
</syntaxhighlight><br />
とか<br />
<syntaxhighlight lang="vim"><br />
:%s/foo/bar/g<br />
</syntaxhighlight><br />
といった方法になります。<br />
この例では、置換を実行してよいかどうかの確認がないまま、置換が実行されます。<br />
<br />
ときには、置換したい場所とそうではない場所があり、細かい条件を追加することで、確認しないでも置換することもできるかもしれませんが、細かい指定を入れるのが難しかったり、面倒だったりすることもあると思います。<br />
<br />
ここでは、確認をしながら置換する方法を紹介します。<br />
== 文字列を置換する場合に確認を入れる方法 ==<br />
[[vim]]の置換のオプションには、 c オプションがあり、この c を指定することで、文字列を置換するときに、「置換をするか?」と確認のメッセージが出るようになります。もし、置換してよければ y 、置換をしたくなければ、 n を押すと、置換の実行の可否が決定され、次のマッチした文字列の場所に移動して、再び、置換をするかどうかの確認が始まります。<br />
<syntaxhighlight lang="vim"><br />
:%s/foo/bar/c<br />
</syntaxhighlight><br />
<br />
同じ行で2回以上の置換を行うときには、g を指定しますが、確認を入れながら置換する場合には、c オプションも指定するため、オプション指定は、 gc といった形になります。<br />
<syntaxhighlight lang="vim"><br />
:%s/foo/bar/gc<br />
</syntaxhighlight><br />
== 関連項目 ==<br />
* [[vimの検索と置換]]<br />
* [[vimのパターン検索と置換で知っておくべきこと]]<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon
https://kaworu.jpn.org/vim/index.php?title=vim%E3%81%AE%E6%A4%9C%E7%B4%A2%E3%81%A8%E7%BD%AE%E6%8F%9B&diff=230
vimの検索と置換
2017-06-10T04:04:33Z
<p>Daemon: ページの作成:「vimでは、非常に便利な'''検索'''と'''置換'''の機能が提供されています。vimの検索と置換を活かさずに、vimを使用する...」</p>
<hr />
<div>[[vim]]では、非常に便利な'''検索'''と'''置換'''の機能が提供されています。[[vimの検索と置換]]を活かさずに、[[vim]]を使用するのは、非常にもったいないです。<br />
<br />
'''読み方'''<br />
;[[vim]]:ぶぃむ,ゔぃむ<br />
__TOC__<br />
<br />
== 概要 ==<br />
[[vim]]では、非常に便利な'''検索'''と'''置換'''の機能が提供されています。[[vimの検索と置換]]を活かさずに、[[vim]]を使用するのは、非常にもったいないです。<br />
== vimの検索 ==<br />
* [[vimの検索のハイライトを消す方法]]<br />
== vimの置換 ==<br />
* [[vimで確認をしながら文字列を置換する方法]]<br />
* [[vimの文字列置換で置換後の文字列に改行を含める方法]]<br />
* [[vimで改行だけの空行を削除する方法]]<br />
* [[vimでタブやスペースだけの空白行を削除する方法]]<br />
* [[vimで行末のタブやスペースの空白を削除する方法]]<br />
== まとめ ==<br />
* [[vimのパターン検索と置換で知っておくべきこと]]<br />
== 関連項目 ==<br />
* [[メインページ]]<br />
<!-- vim: filetype=mediawiki<br />
--></div>
Daemon