怎么才能使光标不要随屏幕滚动?(GVim)

Vim、Emacs配置和使用
iny
帖子: 142
注册时间: 2008-05-22 9:43

怎么才能使光标不要随屏幕滚动?(GVim)

#1

帖子 iny » 2009-06-27 17:13

当往上滚动编辑器的时候,如果最末行小于之前的光标行时,光标会自动跳到最末行
相反的,当往下滚动编辑器的时候,如果最顶行大于之前的光标行时,光标会自动跳到最顶行

这小效果带来的问题就是无法用鼠标进行文本选择超过一页的文本,只要滚动编辑器,光标就会发生变化。

请问有什么办法能解决这个问题?

PS:我知道可以用<S-v>可以进行文本选择,但是当需要选择大块的文本的时候,非常麻烦,要么使用j或者k一行一行的选(累加),要么通过数行数,然后用数字组合命令,但是不管用哪种方式,都非常费力,非常麻烦。
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#2

帖子 solcomo » 2009-06-27 17:18

标记 跳回
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
iny
帖子: 142
注册时间: 2008-05-22 9:43

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#3

帖子 iny » 2009-06-27 17:25

solcomo 写了:标记 跳回
具体怎么操作?
sarrow
帖子: 403
注册时间: 2007-10-27 1:04

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#4

帖子 sarrow » 2009-06-27 20:31

晕掉!

使用vim,基本就可以抛弃鼠标了,你竟然??

在第一个选区点,按v或者V,至于到你想要的区间,你可以<C-F>、<C-B>来换页,也可以20j,20k按行,或者/,?这样搜索,或者10},10{按段落选区。

若不想处于选择模式的话,还可以做标记。开始处ma,跳到结尾处mb;然后v'a。
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#5

帖子 BigSnake.NET » 2009-06-27 20:33

鼠标选文本

昏倒....
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
iny
帖子: 142
注册时间: 2008-05-22 9:43

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#6

帖子 iny » 2009-06-27 21:22

看来崇尚技术的比崇尚应用的人比较多 :em20

我强调过了,用键盘完全可以实现,但是我可以打赌,鼠标选取大文本绝对比键盘要快得多,鼠标选取只要2个很连贯的操作:
1、光标放在起始处
2、按住Shift,光标放在末尾处

有时候不见得Linux的东西就是最好的,也不见得Windows的东西就是最好的,好的东西就应该吸取。

如果大家觉得晕,是不是Linux就不应该搞什么GUI界面了,回归字符模式最好呢?
starwing
帖子: 100
注册时间: 2008-09-19 1:03

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#7

帖子 starwing » 2009-06-28 0:20

怎么这么极端呢?

既然你想鼠标选文本,可以这样:
鼠标放第一个位置,输入mm(打两个m应该很方便吧?)
然后鼠标选第二个位置,输入v'm

如果觉得麻烦,可以映射一下:
noremap <LeftMouse> <LeftMouse>mm
noremap <S-LeftMouse> <LeftMouse>v`moygv

这样Vim就可以完全做到你想要的行为了。
不过提醒你,这样有点得不偿失,因为S-LeftMouse有个很方便的功能:查找鼠标下的文字。
建议你可以用下面的语句替换第二个指令:
noremap z<LeftMouse> <LeftMouse>v`moygv

这样,按一下z,然后按鼠标左键就可以了。

鼠标有时候是很方便,不过也要学会折中哦
starwing
帖子: 100
注册时间: 2008-09-19 1:03

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#8

帖子 starwing » 2009-06-28 0:31

另外,如果鼠标是Unix模式的,就是说按右键没菜单出来的。就可以先鼠标点开始点,按v,然后大大方方地移动到结尾的地方吧。虽然光标会动,但选择区不会动的哦,移到结尾的地方时,在结尾处点鼠标右键也OK,不过我觉得右键菜单爽一些……也许可以映射一下……
iny
帖子: 142
注册时间: 2008-05-22 9:43

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#9

帖子 iny » 2009-06-28 0:44

谢谢楼上几位,不过我没测试成功,我用的是GVim,我目前仅仅是复制大文本的时候才会用鼠标,因为用键盘方式是在是太麻烦
starwing
帖子: 100
注册时间: 2008-09-19 1:03

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#10

帖子 starwing » 2009-06-28 1:14

恩?怎么会?有问题可以提出来。可以用:help的文件做做测试。
hjjdebug
帖子: 94
注册时间: 2009-04-21 9:48

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#11

帖子 hjjdebug » 2009-06-28 11:04

starwing 写了:
既然你想鼠标选文本,可以这样:
鼠标放第一个位置,输入mm(打两个m应该很方便吧?)
然后鼠标选第二个位置,输入v'm
starwing 推荐的方法很好了。
就是定义一个标记,选择到这个标记。
另外,你只所以在gvim下没有试成功,是因为这样只是进行了选择。
下一步,应该用ctrl-c, ctrl-v 来复制,粘贴了。
iny
帖子: 142
注册时间: 2008-05-22 9:43

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#12

帖子 iny » 2009-06-28 14:08

我按了mm,当前行就被设定为书签了(当前行背景高亮),然后到第二个位置按v'm,命令行里面提示:
E20:没有设定标记
starwing
帖子: 100
注册时间: 2008-09-19 1:03

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#13

帖子 starwing » 2009-06-28 15:13

下面的映射试过没?在命令行中输入。或者加入到vimrc。

或者下面的一个tricks,就是说点鼠标以后按v,然后移动。

我刚才试验了,没道理出现你说的错误呀。你在按了mm以后,输入:marks<CR>(CR代表回车)看看,有没有一个叫m的书签。然后移动到结尾的地方,再点击一下鼠标,输入v`m(重要提示:”`“不是单引号,是键盘上1左边那个键!),然后就随意了,用y复制,或者“+y复制到剪贴板,甚至点击工具栏复制按钮都可以。

不过还是尝试一下我写的映射,那个更为方便。
头像
lilydjwg
论坛版主
帖子: 4248
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#14

帖子 lilydjwg » 2009-06-28 15:16

怎么弄这么复杂?
我在GVIM里直接用鼠标拖动选择没问题啊!只是要复制到剪贴板时还得用键盘yank一下。
starwing
帖子: 100
注册时间: 2008-09-19 1:03

Re: 怎么才能使光标不要随屏幕滚动?(GVim)

#15

帖子 starwing » 2009-06-28 17:40

是这样的,LZ是想选择很长(超过屏幕)的文本,长时间按住鼠标左键很不爽的,不小心松了那就只好重来了= =
回复