Ⅰ. 插件描述
Text-object like motion for argumentsⅡ. 基本信息
|
Ⅲ. 安装方法
使用Vundle管理器安装
在你的.vimrc下添加:Plugin '/argtextobj-vim'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall
对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。
使用NeoBundle管理器安装
在你的.vimrc下添加:NeoBundle '/argtextobj-vim'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall
使用VimPlug管理器安装
在你的.vimrc下添加:Plug '/argtextobj-vim'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall
使用Pathogen管理器安装
在终端中运行以下命令:cd ~/.vim/bundle
git clone https://github.com/vim-scripts/argtextobj.vim
Ⅳ. 文档说明
This plugin provides a text-object 'a' (argument). You can
d(elete), c(hange), v(select)... an argument or inner argument in familiar ways.
That is, such as 'daa'(delete-an-argument) 'cia'(change-inner-argument) 'via'(select-inner-argument).
What this script does is more than just typing
F,dt,
because it recognizes inclusion relationship of parentheses.
There is an option to descide whether the motion should go out to toplevel function or not in nested function application.
Examples:
case1) delete An argument
function(int arg1, ch<press 'daa' here>ar* arg2="a,b,c(d,e)")
function(int arg1<cursor here; and if you press 'daa' again..>)
function(<cursor>)
case2) change Inner argument
function(int arg1, ch<press 'cia' here>ar* arg2="a,b,c(d,e)")
function(int arg1, <cursor here>)
case 3) smart argument recognition (g:argumentobject_force_toplevel = 0)
function(1, (20<press 'cia' here>*30)+40, somefunc2(3, 4))
function(1, <cursor here>, somefunc2(3, 4))
function(1, (20*30)+40, somefunc2(<press 'cia' here>3, 4))
function(1, (20*30)+40, somefunc2(<cursor here>4))
case 4) smart argument recognition (g:argumentobject_force_toplevel = 1)
function(1, (20<press 'cia' here>*30)+40, somefunc2(3, 4))
function(1, <cursor here>, somefunc2(3, 4)) " note that this result is the same of above.
function(1, (20*30)+40, somefunc2(<press 'cia' here>3, 4))
function(1, (20*30)+40, <cursor here>) " sub-level function is deleted because it is a argument in terms of the outer function.