栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用.s文件设置文件类型和注释键映射

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用.s文件设置文件类型和注释键映射

站在巨人的肩膀上

我会 强烈 建议像评论插件评论(我用),书呆子批评家,EnhCommentify,tComment,......,等等。使用插件没有什么可耻的。特别是由于评论切换似乎比预期的要复杂得多。

定制Commentary.vim

只需

'commentstring'
为文件类型设置为注释样式即可。如果Vim识别出您的文件类型,通常已经为您设置了。请参阅
:h'commentstring'

更改

'commentstring'
PHP的示例。将以下内容添加到
~/.vim/ftplugin/asm.vim

if expand('%:t') =~# '.s$'  set commentstring=-- %sendif

或者,如果您希望

vimrc
文件中的所有内容:

autocmd FileType asm if expand('%:t') =~# '.s$' | set commentstring=-- %s | endif

您可以将toggle comment命令设置为

<f1>
如下所示:

nmap <f1> <Plug>CommentaryLine

但是,注释离主行更近,并且不与任何本地映射冲突。

注意:我使用注释,这可能不适用于其他注释插件。与往常一样,请阅读文档。

句法

您可能需要更改语法文件以显示

--
以注释开头的行。将以下内容添加到
~/.vim/after/syntax/asm.vim

syntax match asmComment /--_s.*$/

但是我不或者不能使用插件

有时,使用插件不是一种选择,但您应该知道,(取消注释)比最初看起来要复杂得多。特别是如果您需要跨多个文件类型执行此操作。诸如commentary.vim之类的插件可让您一次注释多行或使用动作,例如

gcip

最简单的方法。仅评论:

autocmd FileType asm nnoremap <buffer> <F1> gI-- <ESC>j

现在,对于一些使用map-expression的切换:

autocmd FileType asm nnoremap <buffer> <expr> <f1> getline('.') =~ '^s*--_s' ? "^3"_x+" : "gI-- <esc>+"

我还创建了一个幼稚的commentary.vim风格的注释切换映射。将以下内容放入您的

vimrc
文件中:

nnoremap gcc :<c-u>.,.+<c-r>=v:count<cr>call <SID>toggleComment()<cr>nnoremap gc :<c-u>set opfunc=<SID>commentOp<cr>g@xnoremap gc :call <SID>toggleComment()<cr>function! s:commentOp(...)  '[,']call s:toggleComment()endfunctionfunction! s:toggleComment() range  let comment = substitute(get(b:, 'commentstring', &commentstring), 's*(%s)s*', '%s', '')  let pattern = 'V' . printf(escape(comment, ''), '(s{-})s(S.{-})s=')  let replace = '12'  if getline('.') !~ pattern    let indent = matchstr(getline('.'), '^s*')    let pattern = '^' . indent . 'zs(s*)(S.*)'    let replace = printf(comment, '1 2' . (comment =~ '%s$' ? '' : ' '))  endif  for lnum in range(a:firstline, a:lastline)    call setline(lnum, substitute(getline(lnum), pattern, replace, ''))  endforendfunction

更多信息

:h 'commentstring':h :set:h filetype:h new-filetype:h ftdetect:h ftplugins:h after-directory:h :syn-match:h :autocmd:h :map-expression:h :map-local


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399193.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号