vim水平摆放所有窗口的三个方法

Method1: map <F7> <ESC>:windo exe "normal \<foobar<C-W>C-W>K"<CR>
Method2: map <F8> <ESC>:windo wincmd K<CR>
Method3: map <F9> <ESC>:call HorizontAll()<cr>

function! HorizontAll()
    windo exe "normal \<c-w>K"
endfunction

小结:

1  map {rhs} 的字串中,ctrl-w会被转意成insert mode下的一个删除命令,该命令删除当前位置的前一个单词,方法1中的foobar就是为了中和掉这个转意。

第一种方法,也是我最开始想到方法,因为ctrl-w的转意,导致映射死活不生效,让我第一次对Vim大为恼怒。隔了一晚上后,才想到中间加一个单词进行中和,早上过来一试果然生效。

2   当为第一种方法的“高明”做法而沾沾自喜的时,才发现还有两种更优雅,更灵活的方法,而第一种方法是如此地丑陋,不禁感叹,想象力有限!受益于伟大祖国的应试教育?不知道。

3   第1与第3方法是我自己睡了一晚后想出来的,第2种方法是翻文档的时候碰见wincmd想起来的,也算半个原创,这也说明创新源于持续不断的努力。

时间: 2024-11-05 17:23:30

vim水平摆放所有窗口的三个方法的相关文章

Windows 10 应用创建模糊背景窗口的三种方法

原文 Windows 10 应用创建模糊背景窗口的三种方法 现代的操作系统中创建一张图片的高斯模糊效果非常容易,不过如果要在窗口中获得模糊支持就需要操作系统的原生支持了.iOS/Mac 和 Windows 系统都对此有支持. 本文将介绍三种创建模糊背景窗口的方法.有人可能喜欢称之为毛玻璃窗口.亚克力窗口. This post is written in multiple languages. Please select yours: 最早我是在 StackOverflow 上回答一位网友的提问时

【转】谁说Vim不是IDE?(三)

谁说Vim不是IDE?(三) 常用插件 之所以说Vim形成了自己的生态环境,就是因为Vim具备开放的插件体系,开发者为了提升开发效率,为Vim编写了数以万计的插件,我们可以根据需要任意选择,也可以基于Vimscript语言开发自己的专属插件. 每个插件都是以Vim为后缀的脚本文件,编写插件的语言一般采用Vimscript.Vimscript是Vim自己的编程语言,我们在后续会介绍到它.尽管Vimscript几乎为可以Vim做任何事,但还是会存在一些场景,用其他语言更好更快.考虑到这一点,Vim的

vim 多标签 多窗口

1.打开多个窗口 打开多个窗口的命令以下几个: 横向切割窗口 :new+窗口名(保存后就是文件名) :split+窗口名,也可以简写为:sp+窗口名 纵向切割窗口名 :vsplit+窗口名,也可以简写为:vsp+窗口名 vim -o file1 file2 ...  #水平打开多窗口, vim -O file1 file2 ...  #垂直打开多窗口, vim -d file1 file2 ...  #垂直打开多窗口,并且进行比较 vimdiff file1 file2 ..  #等同于上一句

4. VIM 系列 - 认识VIM的缓冲区、窗口、标签页

目录 1. 缓冲区 2. 窗口 3. 标签页 4. 设置一下热键 1. 缓冲区 文件和缓冲区的区别 vim 打开一个文件时,其实是从磁盘中读取文件到内存中,vim的一些操作其实是在操作缓冲区, 当使用vim的保存命令时,vim才将缓冲区写回给文件. 操作缓冲区 命令 用途 :bprev 跳转到前一个buffer :bnext 跳转到后一个buffer :bfirst 跳转到第一个buffer :blast 跳转到最后一个buffer :w 将当前buffer写入文件 :e 重新将文件内容加载到缓

获得Window窗口权限的三种方法

1.第一种方法:利用视图控制器自带的View的window属性:  具体使用 self.view.window.rootViewController = ... 2.第二种方法:通过导入APPDelegate类来获取window: 具体使用 AppDelegate *app = [UIApplication sharedApplication].delegate; app.window.rootViewController = ... 3.第三种方法:通过UIApplication应用程序的主窗

Mac添加环境变量的三种方法

Mac添加环境变量的三种方法   法一:系统级,修改/etc/paths(每一行是一个环境变量)   法二:系统级,方便管理 1.创建一个文件: sudo touch /etc/paths.d/mysql 2.用 vim 打开这个文件(如果是以 open -t 的方式打开,则不允许编辑): sudo vim /etc/paths.d/mysql 3.编辑该文件,键入路径并保存(关闭该 Terminal 窗口并重新打开一个,就能使用 mysql 命令了) /usr/local/mysql/bin

scroll、scrollBy和 scrollTo三种方法定位滚动条位置

在默认情况下,页面加载完后默认滚动在最顶端,有些时候我们需要在页面打开后,定位滚动条的位置,比如,横向和纵向滚动条居中,实现页面滚动的方法有三种:scroll.scrollBy和 scrollTo,三个方法都带两个参数:x(X轴上的偏移量)和y(Y轴上的偏移量).因此我们只需修改x,y的偏移量来设置滚动条的位置.另外,页面的滚动高度必须在网页加载完成后才能获取到,所以触发事件用onload. 方法一:用scroll方法实现滚动条位于最底端. <body > 方法二:用scrollBy方法实现滚

mfc 在VC的两个对话框类中传递参数的三种方法

弄了好久,今天终于把在VC中的对话框类之间传递参数的问题解决了,很开心,记录如下: 1. 我所建立的工程是一个基于MFC对话框的应用程序,一共有三个对话框,第一个对话框为主对话框,所对应的类为CTMDDDlg类.在主对话框上我放置了一个标签页(Tab Control)控件,其实现的功能是当单击标签提示A时进入页面A,即对话框A(所对应的类为CDialogChild1),单击B时进入对话框B(CDialogChild2). 整个工程的框架已经设计好了,在对话框A和对话框B上放置了许多控件,现在我想

OD调试4----去除nag窗口的几种方法

本实验所用程序如下,一个主窗口,两个nag窗口.nag本意为烦人唠叨的意思.在这里指的是不断弹出来窗口,例如注册窗口. 这里第一个和第三个为烦人的nag窗口,这里我们要将它去除.接下来就介绍四种方法,为了简单就以第一个窗口为例. 加载程序,(F8)运行.到达一个je跳转,下面包含着是第一个对话框的内容. 再来看下运行信息提示: 分析下,这是一个je跳转.但跳转没有实现,所以就会执行到第一个对话框.只需我们修改下je这个地方就行了. 第一种方法. 修改标志位寄存器.对于je来说,当z标志位为1时跳