vim更改背景等
文本中每个位置
的结果高亮
显示,是根据该位置嵌套最深
的语法匹配
设置的.如果这样的匹配
缺少背景
属性,则就用正常组.
因此,必须独立更改
每个"最终"比赛亮点.所以答案是否定的,你不能.至少,不能通过语法匹配
机制.
全局变量
仍与旧脚本
中的相同,因此unlet
像以前一样工作.唯一的区别是现在总是需要g:
前缀来访问全局变量
.
在Vim9
脚本中,:var
用于定义外部不可见的局部变量
.直接g:
指定全局变量,尽量,用%=
和%<
.
在要截断
字段前放%
.默认这是第一个,即文件名太长.如,可查看默认状态行
的工作方式
.
:h statusline
.
"+p或"*p
,复制时保存缩进.
:autocmd BufNewFile,BufReadPost *.{yaml,yml} echo 'a'
//自动命令
:autocmd BufNewFile,BufReadPost *.{yaml,yml}
//查看自动命令.
设置xaml
为xml
类型.
:set filetype=xml
au BufNewFile,BufRead *.xaml setlocal filetype=xml
替换单词:
:%s/^\w\+/\=substitute(submatch(0), '_\(\a\)', '\u\1', 'g')
:[range]normal ^crc.
//https://github.com/tpope/vim-abolish
//处理单词变体.
exepath()/executable
来查找可执行文件
.
nnoremap gd m':keepjumps normal!gd$Bgf<CR>:noh<CR>
:keepjumps
允许你在不更改跳转
列表就执行命令
,但映射
使用正常模式命令和搜索
.你可用:normal
从命令行运行
正常模式命令,然后应用:keepjumps
.
我用:$B
正常模式命令替换了你的搜索
,它按不同的方式移动到相同的位置
.
此外,因为你正在使用:keepjumps
,所以在运行gd
前的位置不会存储
在跳转列表中,因此用Ctrl-O
返回时,会在移动
到执行映射位置前跳转
位置.为此,在运行:keepjumpsnormal
命令之前使用m'
手动添加到期望光标至跳转列表
中.
映射
右侧不是命令,它不能有与之关联
的脚本环境.因此,无法访问其中的脚本
局部变量.
可使用窗口局部
变量来存储每个窗口
数据,或在适当时使用全局变量
.
也可从映射中调用脚本局部
函数(从而在内部
访问脚本局部变量).但在Vim
脚本中,局部
函数是名字混乱的"全局变量
",因此与变量
不同,可从地方访问
.
augroup allfiles
autocmd FileType * :set nocindent noexpandtab incsearch hlsearch
augroup END
所有文件
,加选项.
g:syntax_on
,确定是否打开语法高亮.
:map <F7> :if exists("g:syntax_on") <Bar>
\ syntax off <Bar>
\ else <Bar>
\ syntax enable <Bar>
\ endif <CR>
//可用函数
可单独
切换每个缓冲区的语法状态,
syntax manual
map <F12> <cmd>let &syntax = exists('b:current_syntax') ? 'OFF' : 'ON'<CR>
用bwipeout
完全删除缓冲区
,bdelete
只是隐藏.
{
为"排他性动作",如w
与dw
动作.
在opfunc
中准确地说,必须解析动作类型
参数并采取相应的行动,即对于"行"运动,在新行
上添加环绕
等.
vim9
读寄存器:
vim9script
def ReadReg(file: string)
readfile(file)->mapnew((_, line) => {
var [reg, content] = split(line, ': ')
execute $'@{reg} = {content}'
})
enddef
备份再恢复:
call split('abcdefghijklmnopqrstuvwxyz', '\zs')
\ ->filter('!empty(getreg(v:val))')
\ ->map('printf("call setreg(%s, %s)",
\ string(v:val), string(getreginfo(v:val)))')
\ ->writefile('myregs.vim')
再:source myregs.vim
恢复.
dict["key1"]["key2"]
,用da[%p
来交换两个键.
保存视图:
command! -nargs=+ -complete=command Nomove call misc#nomove(<q-args>)
...
...
function! misc#nomove(cmd) abort
let l:pos = winsaveview()
try | return execute(a:cmd, '')
finally
call winrestview(l:pos)
endtry
//这里保存并恢复.
endfunction
...
...
:Nomove 10,20call Foobar(...)
//把`Nomove`后面当作串,加至某个命令中.
vim
设置标题串:
:auto BufEnter * let &titlestring = hostname() . "/" . expand("%:p")
:set title titlestring=%<%F%=%l/%L-%P titlelen=70
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现