当前位置:  技术问答>linux和unix

关于vim

    来源: 互联网  发布时间:2016-04-28

    本文导语:  我使用vim7.0.235,发觉在配置了set mouse=a后,在vi里面右键复制功能就失效了。 7.1版本也有相同问题,请教如何解决 | 以下命令打开鼠标:         :set mouse=a 否则 Vim 不会在所有模式下识...

我使用vim7.0.235,发觉在配置了set mouse=a后,在vi里面右键复制功能就失效了。
7.1版本也有相同问题,请教如何解决

|
以下命令打开鼠标:
        :set mouse=a
否则 Vim 不会在所有模式下识别鼠标 (见 'mouse')。

目前,鼠标只有在 Unix 的 xterm 窗口、Linux 终端 (带 GPM |gpm-mouse|)、MS-DOS
和 Windows 终端上才支持。鼠标键击可以用来定位光标,设置区域并粘贴。

'mouse' 选项的字符决定 Vim 在什么场合下会使用鼠标:
                n       普通模式
                v       可视模式
                i       插入模式
                c       命令行模式
                h       在帮助文件里,以上所有的模式
                a       以上所有的模式
                r       跳过 |hit-enter| 提示

'mouse' 的缺省值为空,即不使用鼠标。通常你会用:
        :set mouse=a
来开始使用鼠标 (这等价于设置 'mouse' 为 "nvich")。如果你只想在若干模式下或者在
某两个任务上使用鼠标,你需要专注于那些模式对应的字母。例如:
        :set mouse=nv
会使得鼠标在普通模式和可视模式下工作。
        :set mouse=h
会使得鼠标只有在帮助文件里工作 (这样,可以用 "g" 来进行标签跳转)。

鼠标能否在可视模式或者选择模式下开始选择,决定于 "selectmode" 选项包不包括
"mouse"。

在 xterm 终端里,在 'mouse' 选项包含当前激活的模式的前提下,普通的鼠标键击归
Vim 使用,而带 shift 或者 ctrl 键的鼠标键击由 xterm 控制。如果 'mouse' 不包括
当前激活的模式,则所有的鼠标键击由 xterm 控制。

                                                        *xterm-clipboard*
Athena 和 Motif GUI 版本上,如果在终端运行但是可以访问 X-server (设置了
DISPLAY),那么复制和粘贴和 GUI 上的行为相似。如果不是,那么鼠标中键会插入无名
寄存器。这种情况下,这里是如何复制和粘贴一段文本的方法:

用鼠标和可视模式复制/粘贴 ('mouse' 选项必须设置,见上):
1. 在文本的第一个字符上按鼠标左键,移动鼠标到文本的最后一个字母,然后释放左
   键。这会启动可视模式并高亮选择区域。
2. 按 "y" 抽出可视文本到无名寄存器里。
3. 在要插入的位置上按鼠标左键。
4. 按鼠标中键。

快捷方式: 如果插入位置和可视文本同时出现在屏幕上,你可以一次做 2、3 和 4: 在要
插入的位置直接按鼠标中键。

注意: 如果使用 |-X| 命令行参数,Vim 不会连接到 X 服务器,所以复制/粘贴到 X 剪
贴板 (选择区) 不会工作。使用带 shift 键的鼠标键来让 xterm 完成选择。

                                                        *xterm-command-server*
如果 X-服务器的剪贴板可用,|x11-clientserver| 的命令服务器可以在命令行用
--servername 打开。

                                                        *xterm-copy-paste*
注意: 在有些 (较老的) xterm 版本里,光标不能移动超过第 95 列。这是 xterm 的问
题,不是 Vim 的。用新一点的 xterm 吧 |color-xterm|。

使用 xterm 粘贴/复制 (当前模式_不_包括在 'mouse' 里):
1. 在文本的第一个字符上按鼠标左键,移动鼠标到文本的最后一个字母,然后释放。
2. 使用普通的 Vim 命令把光标移动到待插入的位置。
3. 按 "a" 开始插入模式。
4. 按鼠标中键。
5. 按 ESC 退出插入模式。
(对包含在 'mouse' 里的模式,这里的操作同样可以完成,只要你在使用鼠标的时候按住
shift 键就行了。)

注意: 如果你在粘贴的时候丢失了第 8 位 (特殊字符被翻译成其他字符),你需要在启动
Vim 之前在外壳上执行 "stty cs8 -istrip -parenb"。

这样,在 xterm 上 shift 和 ctrl 键不能和鼠标一起使用。需要 CTRL 修饰符的鼠标命
令可以在使用鼠标前按 "g" 键模拟:
        "g"  是 "       (跳转到鼠标点击的标签上)
        "g" 是 "      ("CTRL-T")

                                        *mouse-mode-table* *mouse-overview*
如果 'mousemodel' 是 "extend" ,鼠标按钮的功能的概述在此:

普通模式:
事件          移动光标     选择         改变窗口   行动 
     是         结束           是
   是         结束           是       "CTRL-]" (2)
   是        不改变          是       "*" (2)    **
      是      开始或者扩展 (1)  否                  **
   是      开始或者扩展 (1)  否
   是      如果没有激活      否       放置
   是       如果激活         否       抽出和放置
    是      开始或者扩展      是
  是      开始或者扩展列块  是                  **
  是        不改变          是       "#" (2)    **
  否        不改变          否       "CTRL-T"
     是         扩展           否                  **
  是         扩展           否                  **


|
解决的方法就是 set mouse=

|
重新设置即可。

|
没有遇到过~

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3