linux 鼠标设置 您所在的位置:网站首页 光标模式选哪个 linux 鼠标设置

linux 鼠标设置

2024-01-09 01:03| 来源: 网络整理| 查看: 265

以下命令打开鼠标:

  :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"

是 扩展 否 **

是 扩展 否 **

 

 

 

插入或替换模式:

事件 移动光标 选择 改变窗口 行动  

是 (不能激活) 是

是 (不能激活) 是 "CTRL-O^]" (2)

是 (不能激活) 是 "CTRL-O*" (2)

是 开始或者扩展 (1) 否 类似于 CTRL-O (1)

是 开始或者扩展 (1) 否 类似于 CTRL-O (1)

否 (不能激活) 否 放置寄存器内容

是 开始或者扩展 是 类似于 CTRL-O

是 开始或者扩展列块 是

是 (不能激活) 是 "CTRL-O#" (2)

否 (不能激活) 否 "CTRL-O CTRL-T"

 

在帮助窗口里:

事件 移动光标 选择 改变窗口 行动  

是 (不能激活) 否 "^]" (帮助标签跳转)

 

当 'mousemodel' 为 "popup" 时,下面这些有所差异:

 

普通模式:

事件 移动光标 选择 改变窗口 行动  

是 开始或者扩展 (1) 否

是 开始或者扩展列块 否 **

否 弹出菜单 否

 

插入或替换模式:

事件 移动光标 选择 改变窗口 行动  

是 开始或者扩展 (1) 否 类似于 CTRL-O (1)

是 开始或者扩展列块 否

否 弹出菜单 否

 

(1) 只有当鼠标在按键后发生移动

(2) 只有当点击发生在同一缓冲区时

 

点击鼠标左键改变光标的位置。如果点击发生在另一个窗口,那么那个窗口成为活动窗

口。在编辑命令行时,光标只能定位在命令行上。在插入模式下,Vim 仍然保持在插入模

式。如果设置了 'scrolloff',而光标定位在窗口边界 'scrolloff' 行范围内,则文本

被滚动。

 

在第一个字符上按鼠标左键,移动鼠标到最后一个字符,然后释放,可以进行选择。直到

你释放鼠标键,你不一定总能看到选择的区域。只有一些版本能够 (GUI、MS-DOS、

WIN32) 使得拖动立即显示。注意 如果 'scrolloff' 非零,你可以在窗口的首/ 末行移

动鼠标至少一个字符位置使文本滚动。

 

在普通、可视和选择模式下,单击鼠标右键使得可视区域被扩展。如果 'mousemodel' 为

'popup',必须使用按住 shift 键的鼠标左键。如果在编辑另外一个缓冲区时点击一个窗

口,可视和选择模式被终止。

 

在普通、可视和选择模式下,按下 Alt 键同时单击鼠标右键,可使选择区域成为面向列

块。当 'mousemodel' 被设置为 "popup",鼠标左键必须和 Alt 键一起使用。注意在某

些系统中失效,那些系统中的窗口管理器在按下 Alt 键时会吃掉鼠标事件 (可能会移动

窗口)。

 

  *double-click*

双击、三击和四击在 GUI 激活时、MS-DOS 和 Win32,以及 xterm (如果有

gettimeofday() 函数) 上得到支持。对于文本选择,附加的点击会扩展选择区:

  点击 选择  

  两次 单词或者 % 匹配 **

  三次 行 **

  四次 矩形区域 **

特例: 在帮助窗口上,双击跳到点击的单词对应的帮助。

双击单词选择该单词。'iskeyword' 用来指定单词可以包括哪些字符。双击一个有匹配的

字符选择直到该匹配的区域 (类似于 "v%")。如果匹配是 #if/#else/#endif 块,选择变

为面向行。

MS-DOS 和 xterm 上,双击相隔的时间可以通过 'mousetime' 选项设置。其他系统上,

该值只能在 Vim 之外定义。

一个使用双击跳转到光标所在的标签的例子:

  :map :exe "tag ". expand("")

 

使用双击拖动鼠标 (按下按钮、抬起按钮、按下按钮、然后拖动) 会导致完整的多个单词

被选择,直到按钮被释放为止。这时选择重新以字符为单位。

 

  *gpm-mouse*

GPM 鼠标只有在编译时打开 |+mouse_gpm| 特性才有效。GPM 鼠标驱动 (Linux 终端) 不

支持四击。

 

插入模式下,但选择开始时,Vim 暂时回到普通模式。在可视或者选择模式结束时,又回

到插入模式。这类似于在插入模式下使用 CTRL-O 的情形。选择模式在 'selectmode' 选

项包含 "mouse" 时被使用。

 

  *drag-status-line*

如果有多个窗口一起工作,窗口的大小可以用通过鼠标拖动状态行来改变。把鼠标点在状

态行上,按左键,移动鼠标把状态行带到新的位置,再释放左键。只是用鼠标点击状态行

而不移动鼠标使得那个窗口成为当前窗口。如果选择了一个窗口会改变状态行的位置或大

小,状态行的拖动看起来很奇怪,但还是会工作的 (试试吧)。

 

  ** **

鼠标点击可以映射。鼠标点击的代码是:

  代码 鼠标按钮 一般的行动   

  按住左键 设置光标位置

  按住并移动左键 扩展选择区

  释放左键 结束选择区

  按住中键 在光标所在的位置上粘贴

  按住并移动中键 -

  释放中键 -

  按住右键 扩展选择区

  按住并移动右键 扩展选择区

  释放右键 结束选择区

  按住 X1 键 - *X1Mouse*

  按住并移动 X1 - *X1Drag*

  释放 X1 键 - *X1Release*

  按住 X2 键 - *X2Mouse*

  按住并移动 X2 - *X2Drag*

  释放 X2 键 - *X2Release*

 

X1 和 X2 按钮指一些鼠标上的附加按钮。'Microsoft Explorer' 鼠标在右拇指位置有这

些键。目前 X1 和 X2 只能用于 Win32 环境。

 

示例:

  :noremap

在鼠标中键点击的位置粘贴 (不然,粘贴在光标所在的位置进行)。

 

  :noremap y

在可视模式下立即抽出选择区。

 

注意使用了 ":noremap" 而不是 "map",以免发生递归映射。

 

  :map

  :map

把 X1 和 X2 键定义为跳转表的前进和后退,见 |CTRL-O| 和 |CTRL-I|。

 

  *mouse-swap-buttons*

要交换鼠标左键和右键的含义:

  :noremap

  :noremap

  :noremap

  :noremap

  :noremap

  :noremap

  :noremap g

  :noremap g

  :noremap!

  :noremap!

  :noremap!

  :noremap!

  :noremap!

  :noremap!

 

 vim:tw=78:ts=8:ft=help:norl:

 

参考  http://topic.csdn.net/u/20081124/17/ce367f9f-bf3a-4d84-a075-341d9e7bc509.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有