首页 » Linux » 正文

解决xshell在kali linux中使用vim复制黏贴的问题

新装好kali linux,用xshell连上了kali linux的ssh,却发现用vim打开的文件无法复制黏贴。选择文字时,左下显示Visual(可视模式)。这里先解释下vi(vim)的四种模式。

vim的四种模式

正常模式,命令模式,插入模式,可视模式,选择模式.鼠标可以启动于各种模式中:

正常模式(Normal-mode)

启动vim后默认处于正常模式。不论位于什么模式,按下键(有时需要按两下)都会进入正常模式。

命令模式(Command-mode)

在正常模式中,按下:(英文冒号)键,会进入命令模式。在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。

常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。

插入模式(Insert-mode)

在正常模式中按下i, I, a, A等键,会进入插入模式。现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。

可视模式(Visual-mode)

在正常模式中按下v, V,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。

选择模式(Select Mode)

在gvim下常用的模式,可以叫作选择模式吧。用鼠标拖选区域的时候,就进入了选择模式。和可视模式不同的是,在这个模式下,选择完了高亮区域后,敲任何按键就直接输入并替换选择的文本了。和windows下的编辑器选定编辑的效果一致。普通模式下,可以按gh进入。

那么,如何退出可视模式,进入正常模式呢?

方法一

在可视模式下,按住shift+: 进入 命令模式 ,输入 set mouse-=n ,回车。

更多mouse参数, 进入 命令模式,输入 help mouse ,回车

可以看到这几个选项

现在你在xshell中选择一些字符串看看,是不是可以复制了呢。不过,这个方法有一个不方便的地方,就是每次需要复制的时候都要在命令模式下敲入set mouse-=n。可不可以持久化到配置文件中,使其永久生效呢?方法二给出了答案。

方法二

在家目录下新建 .vimrc 的vim个人配置文件

加入如下配置

保存,退出。

现在,打开文本文件复制看看,是不是可以直接复制了呢。但是,这里出现了一些新的问题,vim打开后的文件不仅无法高亮,一些默认的设置也没了。这个我们后面解决。来看一个新问题。

Vim粘贴代码时缩进混乱

在终端Vim中粘贴代码时,发现插入的代码会有多余的缩进,而且会逐行累加。原因是终端把粘贴的文本存入键盘缓存(Keyboard Buffer)中,Vim则把这些内容作为用户的键盘输入来处理。导致在遇到换行符的时候,如果Vim开启了自动缩进,就会默认的把上一行缩进插入到下一行的开头,最终使代码变乱。

解决

1.取消自动缩进

在命令模式下,使用“:set nosmartindent”和“:set noautoindent”取消自动缩进,然后再粘贴即可。完成后再开启自动缩进“:set smartindent”和“:set autoindent”,以上命令都可使用简写,比如“:set si”,可通过Vim的帮助“:help smartindent”查看相应说明。

2.Paste模式

Vim的编辑模式中,还有一个Paste模式,在该模式下,可将文本原本的粘贴到Vim中,以避免一些格式错误。通过“:set paste”和“:set nopaste”进入和退出该模式。更简便的方式是,在Vim中设置一个进入和退出Paste模式的快捷键,往“~/.vimrc”中添加一行配置“set pastetoggle=”,这样即可通过F12快速的在Paste模式中切换,当然快捷键在不冲突的前提下可以任意指定,具体如何指定,参考附带的教程链接。

教程链接:

Linux下的vim配置文件

之前说到

vim打开后的文件不仅无法高亮,一些默认的设置也没了。

那么如何彻底解决配置的问题呢,我们来自定义一些配置吧。

写入如下自定义配置

:wq 保存,退出。

Gvim配置文件

Gvim是带GUI的vim。可以在windows和Linux下使用,以下贴出可以兼容windows和Linux的配置

windows下安装完Gvim后,将该配置文件放到Gvim的根目录下,保存为 _vimrc文件。

发表评论

正在加载验证码......

请先完成验证