优书网推荐,菏泽地网站seo,网站域名自己做,制作简单网页的步骤文章目录 1.1 vim 如何从上次退出的位置打开文件1.2 autogroup 命令学习1.2.1 augroup 基本语法 1.3 vim call 命令详细介绍 1.1 vim 如何从上次退出的位置打开文件
假设我打开了文件 test.c#xff0c;然后我向下滚动到第 50 行#xff0c;然后我做了一些修改并关闭了文件。… 文章目录 1.1 vim 如何从上次退出的位置打开文件1.2 autogroup 命令学习1.2.1 augroup 基本语法 1.3 vim call 命令详细介绍 1.1 vim 如何从上次退出的位置打开文件
假设我打开了文件 test.c然后我向下滚动到第 50 行然后我做了一些修改并关闭了文件。当我重新打开文件时。我希望 光标定位到第 50 行。如何解决这个问题呢
方法一 这是由 $VIMRUNTIME/defaults.vim 完成的在 :h restore-cursor 下也有说明。
方法二 vim ~/.vimrc 然后添加下面内容
augroup vimStartup | au!autocmd BufRead * call setpos(., getpos(\))
augroup end方法三 vim ~/.vimrc 然后添加下面内容
if has(autocmd)In text files, always limit the width of text to 78 characters
autocmd BufRead *.txt set tw100When editing a file, always jump to the last cursor position
autocmd BufReadPost *
\ if line(\) 0 line (\) line($) |
\ exe normal g\ |
\ endif
endif1.2 autogroup 命令学习
“augroup” 是 Vim 的一个命令用于定义或管理自动命令组autocommand groups。在Vim中自动命令autocommands是在某些特定事件如文件保存、文件打开等发生时自动执行的命令。通过使用 “augroup”我们可以将相关的自动命令组织在一起这样在需要修改或删除这些命令时就可以很方便地一次性管理整个组。
1.2.1 augroup 基本语法
“augroup” 命令的基本语法如下
augroup group-name autocmd ...
augroup end“group-name” 是你为自动命令组指定的名称autocmd …是你要定义的一个或多个自动命令。
举个例子假设我们想要在每次保存.php文件时自动清除尾部的空白字符我们可以定义如下的自动命令组
augroup TrimWhiteSpace autocmd! autocmd BufWritePre *.php :%s/\s\$//e
augroup end在上面的例子中“TrimWhiteSpace” 是我们定义的自动命令组的名称“autocmd BufWritePre *.php :%s/\s$//e” 定义了一个自动命令该命令在每次保存.php文件之前BufWritePre事件执行一个删除行尾空白的替换操作。
需要注意的是autocmd!命令用于清除当前组中已有的自动命令保证我们每次运行这段代码时都是在一个空的自动命令组中添加新的自动命令。这可以防止出现重复的自动命令。
另外augroup end标记了自动命令组的结束所有在augroup和augroup end之间定义的自动命令都会被添加到当前的自动命令组中。
1.3 vim call 命令详细介绍
在 Vim 中call 是一个内置的命令主要用于调用 Vimscript 函数。以下是关于 call 命令的详细解释和示例 call 命令的基本语法是 :
call functionname(arguments)其中 functionname 是你要调用的函数的名称arguments 是传递给函数的参数。在没有参数的情况下你可以省略括号。
例如你可以创建一个 Vimscript 函数来增加一个全局计数器
let g:counter 0function! AddToCounter()let g:counter 1
endfunction然后你可以使用 call 命令来调用这个函数
:call AddToCounter()这将会增加 g:counter 的值。
你也可以创建一个带参数的函数例如创建一个可以添加任意数量到计数器的函数
function! AddToCounter(n) : let g:counter a:n
endfunction然后你可以使用 call 命令并传递一个参数来调用这个函数
call AddToCounter(5)这将会把 5 加到 g:counter 的值上。
这就是 Vim call 命令的基本用法。通过使用 call 命令你可以在 Vim 中调用自定义的 Vimscript 函数实现更复杂的文本操作和编辑功能。