2016-11-25 37 views
0

我最近采购的.vimrc我包含此功能:残破的 'ls' 的bash命令的〜/ .vimrc

33 function! InsertTabWrapper() 
34 let col = col('.') - 1 
35 if !col || getline('.')[col - 1] !~ '\k' 
36  return "\<tab>" 
37 else 
38  return "\<c-p>" 
39 endif 
40 endfunction 
41 inoremap <tab> <c-r>=InsertTabWrapper()<cr> 
42 inoremap <s-tab> <c-n> 

我然后在命令行现在做

source ~/.vimrc 

每当我运行

$ls 

我在输出中看到该函数的代码片段。

$ ls 
? else? ??return <c-p 
? endif?endfunction?inoremap <tab> <c-r>=InsertTabWrapper()<cr>?inoremap <s-tab> <c-n>?? 
Applications 
Desktop 
Documents 

我还没有找到任何方法来清除它。谢谢!

+0

@TessellatingHeckler我无法删除它们,并且在“?else??? return user3740901

+0

@TessellatingHeckler rm * return * working!我试过的gui甚至没有显示这些文件。谢谢! – user3740901

+0

很高兴帮助:)我已经将我的意见转换为正确的答案形式,如果您想'接受'即可。 (我开始评论以防万一我完全错误的方向) – TessellatingHeckler

回答

1

猛砸无法读取Vim的语法,我想这会绊倒线(functionletif),并拿起第一>作为文件IO重定向。而这些实际上是您创建的目录中的两个文件,其名称中包含奇怪的字符。

这是通过使输出的第一>之后开始并进入到第二>后一个新行,并且在这两个字符中输出丢失的事实的支持。

ls工作正常,他们确实存在作为文件。你可以删除它们吗?你有另一种浏览文件的方式吗? (Gui,FileZilla通过SFTP,WinSCP等)。你可以试试rm *return*rm *endfunction*,或者(仔细)使用rm -i *,它会提示y/n删除每个文件,只有在出现这些文件时才会说y。 (但是我可能是错的,那不是发生了什么事情,如果我尝试获取文件代码,我不会在文件夹中破坏ls或虚假文件)。