Vim中的remap,noremap,nnoremap和vnoremap映射命令有什么区别?
我想知道Vim中是否有任何键映射允许我缩进某些代码行(是否在可视模式下选择了这些行,或者当前光标位置上方/下方的n行).
所以基本上可以转换以下内容
def my_fun(x, y):
return x + y
Run Code Online (Sandbox Code Playgroud)
至
#def my_fun(x, y):
# return x + y
Run Code Online (Sandbox Code Playgroud)
我可以使用任何一个#或"""用于评论相关的行.理想情况下,如果给定的行已被注释掉,我也希望使用相同的键映射来取消注释行.
在VIM中,我需要注释掉一段Ruby代码:
r<space>如果我想取消注释代码或者r#我想将其注释掉,我会输入.这个工作流程对我来说似乎没问题,有没有办法改进这个过程?是否有任何其他技巧可以在vim中评论或取消注释ruby代码部分?
我经常在Vim中同时评论几行,这种情况经常发生.我所知道的方法并不像TextMate那样快速地评论行.
你最喜欢的方式是什么?
我目前使用:
#对于Ruby):,它提供了一个:'<,'>可以扩展到的提示:'<,'>s/^/#/mm :'m,.s/^/#/我最喜欢方法1,但我仍然希望有更好的方法.
有时我想插入一个 #注释掉一行并快速测试.目前我这样做:
i#ESC:w
我能做些什么吗?
如果我打开一个包含5,000行代码的文件并继续输入,我发现我的vim变得非常慢,它在大约1秒后显示我的输入.
在我开始之后,它甚至不会变得更好--noplugin.但在切换我的.vimrc文件后,一切都恢复 正常.该.vimrc文件由我自己编写,经过一段时间的检查,我仍然无法找到错误.我已清除所有关键地图,但问题仍然存在.
所以你能给我任何建议或告诉我如何在vim中调试吗?我发现有一个调试选项,但无法获得如何工作.
我刚刚开始使用Logstash,并想知道是否有办法在logstash配置文件中指定块注释?当我使用跨越多行的长grok模式进行测试时,它将非常有用.
我希望有一个命令来切换 python代码的行/块中的注释.
我在我的.vimrc文件中使用以下代码:
" (un-)commenting
" comment line, selection with Ctrl-N,Ctrl-N
au BufEnter *.py nnoremap ,c mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>`n
au BufEnter *.py inoremap ,c <C-O>mn<C-O>:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR><C-O>:noh<CR><C-O>`n
au BufEnter *.py vnoremap ,c mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>gv`n
"
" " uncomment line, selection with Ctrl-N,N
au BufEnter *.py nnoremap ,u mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>:s/^#$//ge<CR>:noh<CR>`n
au BufEnter *.py inoremap ,u <C-O>mn<C-O>:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR><C-O>:s/^#$//ge<CR><C-O>:noh<CR><C-O>`n
au BufEnter *.py vnoremap ,u mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>gv:s/#\n/\r/ge<CR>:noh<CR>gv`n
Run Code Online (Sandbox Code Playgroud)
但是,你是一种进行切换的方法,也就是说,如果它被注释,则使用相同的快捷方式进行注释,如果它被注释,则取消注释?
我知道如何在VIM中注释多行,但是如果我想在每行的末尾添加注释呢?例如:
function dir.ls(path)
local i,files = 0,{}
local pfile = io.popen('ls "'..path..'"')
for fname in pfile:lines() do
i = i + 1
fpath = path..fname
files[i] = fpath
end
pfile:close()
return files
end
Run Code Online (Sandbox Code Playgroud)
现在添加评论:
function dir.ls(path)
local i,files = 0,{}
local pfile = io.popen('ls "'..path..'"')
for fname in pfile:lines() do
i = i + 1
fpath = path..fname -- your comment goes here
files[i] = fpath -- your comment goes here
end
pfile:close() -- your comment …Run Code Online (Sandbox Code Playgroud)