vim更改背景等

文本中每个位置的结果高亮显示,是根据该位置嵌套最深语法匹配设置的.如果这样的匹配缺少背景属性,则就用正常组.
因此,必须独立更改每个"最终"比赛亮点.所以答案是否定的,你不能.至少,不能通过语法匹配机制.
全局变量仍与旧脚本中的相同,因此unlet像以前一样工作.唯一的区别是现在总是需要g:前缀来访问全局变量.
Vim9脚本中,:var用于定义外部不可见的局部变量.直接g:指定全局变量,尽量,用%=%<.
在要截断字段前放%.默认这是第一个,即文件名太长.如,可查看默认状态行工作方式.
:h statusline.
"+p或"*p,复制时保存缩进.

:autocmd BufNewFile,BufReadPost *.{yaml,yml} echo 'a'
//自动命令
:autocmd BufNewFile,BufReadPost *.{yaml,yml}
//查看自动命令.

设置xamlxml类型.

: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只是隐藏.
{为"排他性动作",如wdw动作.
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

posted @   zjh6  阅读(35)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示