我最近在我的机器上升级到Fedora 33 (Linux5.9.16-200)。我正在运行vim增强版本8.2。当我输入sudo vim (甚至sudo vi)来编辑具有管理权限的文件时,我会得到以下错误。
sudo: __vi_internal_vim_alias: command not found
我不知道是什么原因造成了这种情况。没有sudo的情况下,Vim装载很好。你能告诉我如何解决这个问题吗?谢谢。
更新:在执行which vim时,我得到以下结果。
alias vim='__vi_internal_vim_alias'
__vi_internal_vim_
我的/etc/vim/vimrc文件有奇怪的问题。
我试图摆脱VIM中的可视模式,所以我尝试在我的vimrc文件中添加vimrc命令。
然而,我的vim并没有考虑到这些变化。
当我在openend中执行:set mouse-=a时,它会做我想做的事情(选择带有鼠标的文本而不进入可视模式),但是命令在vimrc文件中不能工作。
我还启用了vimrc中的“在重新打开文件时跳转到最后一个位置”,它正在工作,这使我更加困惑。我一直在尝试每一个可能的命令:
set mouse=a
set mouse=r
set mouse-=a
:set mouse-=a
当添加到/etc/vi
发射vim。在空缓冲区中,插入两行,其中第一行由3个空格组成,第二行由hello world组成。
下面是一个用点表示空格的示例文件。
...
hello world
现在按gg键。光标移动到第一行的第三个空格。
引用:help gg
<C-Home> or *gg* *<C-Home>*
gg Goto line [count], default first line, on the first
non-blank character |linewise|. If 'start
我使用的是Ubuntu Linux 10.04。我使用vim进行大部分开发,使用CodeBlocks进行调试。当我第一次从Windows迁移到Linux时,我注意到vim为换行符显示^Ms,并发现这是Microsoft的问题。但是,即使在删除它们之后,我也注意到它们有时会重新出现在文件中(我想是在CodeBlocks中编辑的文件?)。
我的分析正确吗?我该如何解决这个问题呢?
当使用:redir将命令的输出重定向到变量时,似乎所有的\n都被\r\n替换了。
例如,当运行时
redir => m
silent !echo -e "Hallo\nCiao"
redir END
put =m
然后用^M插入缓冲区末尾的新行,这表示回车(\r)字符。
但是,这似乎只在执行外部命令时发生。如果不使用shell提供的echo命令,而是使用Vim的内部echo命令,即,
redir => m
" Note the missing `!` in front of `echo`
silent echo "Hallo\nCiao"
r