我一年前就发现了Vim,而且我对它越来越上瘾了。 我重新映射了我的法国德沃夏克风格的bépo布局的每个键,以坚持正常模式的qwerty布局,就像在这个页面上的“重构故事和触摸”中所描述的那样:https://bepo.fr/wiki/Vim,本质上是因为我从Vim Adventures游戏中学到了东西。 它工作得很好: 例如,yr重新映射为cl:该命令将字符向右剪切并进入插入模式。 但是,vim状态行在显示c:之前会显示y一秒钟: ? 我将我的映射从: noremap y c 要这样做: map <nowait> y c 没有成功。 有没有人知道是否可以立即显示一个重新映
我有一个问题:当我使用d或c启动操作符挂起模式并单击活动窗口时,鼠标单击就会起到一个动作的作用。例如,我可以将光标定位在段落的开头,按d,然后单击段落末尾的单词,Vim将从光标位置删除到段落的末尾。我想禁用此功能,以防止意外点击鼠标。
我在我的.vimrc中添加了以下内容,它告诉Vim只在普通模式和视觉模式下启用鼠标。
set mouse=nv
然而,这是行不通的。我可以进入操作员挂起模式,并仍然使用鼠标点击作为议案.它可以告诉Vim不接受鼠标点击在操作符挂起模式的动议?
在我的.vimrc
noremap z w
当我检查映射时,:map z仅显示:
z * w
当我按下z时,我的光标会按预期移动(移到下一个单词)。但是,当我尝试使用诸如diz或ciz之类的东西时,什么也没有发生。在我输入的时候,屏幕底部会出现di和ci,但是一旦我输入z,Vim就会兴高采烈地闲置着。diw和ciw仍然像预期的那样工作。
我还需要做什么?有没有我不知道的映射模式?
我有一个自定义的键盘布局。因此,我将vim命令h、j、k和l绑定到其他字母,例如,我将j绑定到e,如:nmap e j。
这样做的问题是,在运算符挂起模式下,我有时希望e表示j,有时我希望它表示e。例如,当我按de时,我希望它表示dj,但当我按te时,我希望它表示te。
有没有办法解决这个问题?
我可以使用omap de dj,但是如果我想通过输入d3e来删除更多的行,这是行不通的。如果有(我不这么认为,或者有吗?)一些匹配数字的方法,例如用#,然后我可以用omap d#e d#j这样的东西。或者,根据我已经在操作符挂起模式中键入的内容,可能会有一些方法来更改映射。
下面是我的.vimrc,我希望expandtab可以处理所有提到的文件类型,除了显式禁用的make之外。et过去用作非文件类型的set命令,但是检测文件类型很重要。
" vundle Config
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
我在努力学习维姆。当我打开程序时,会遇到这样的情况:
The airline statusline funcref function('airline#extensions#mundo#statusline') has already been added.The airline statusline funcref function('airline#extensions#mundo#statusline') has already been added.
错误信息表明你已经安装了两次航空公司..。
你在全球范围内安装了航空公司吗?是什么:剧本告诉你的?谢
使用奇异的键盘布局,我必须重新映射g(以及其他),在我的布局中,g在经典的qwerty布局中位于h位置。为此,我决定使用以下命令将g替换为h:
noremap g h
noremap h g
这不管用。例如,输入hh被视为gh而不是gg。此外,当点击g时,它显示g(启用了showcmd ),而不是h,而且它似乎没有考虑重新映射,它的行为类似于g命令。但当再次敲击g或等待1秒时,它实际上会向左移动。
我尝试了以下方法,使其在操作挂起模式下工作
onoremap g h
onoremap h g
但这不会改变任何事。
那么为什么它会这样做呢?以及如何修复它?
如果某些行太长,将强制换行。
例如,通常情况下,一条长线将如下所示
1 first line
2 this is the long second line of the file
3 third line.
但是,如果vim的窗口太窄,它将如下所示
1 first line
2 this is the long
second line of the file
3 third line
问题就是由此而产生的。
让我们假设vim光标位于“第三行”中“t”之前。如果我输入'k',光标将移动到's‘之前的’文件的第二行‘。之后,如果我再次输入'k‘,光标将移动到
为什么S在下面的代码中是string?
type T<X> = {[K in keyof X]: never};
type S = T<string>;
这是TypeScript游乐场。
即使我用其他类型替换never,它也会变成相同的类型(never)。
添加上下文,下面的类型将如我所期望的那样工作。
type T<X> = {[K in (keyof X) & string]: never};
type S = T<string>;
我在MacOS终端上遇到了vim的问题。这是我终端调色板的屏幕截图:
下面是一个在vim中打开的文件的示例
我的.vimrc如下:
syntax on
set noswapfile
set tabstop=2
set shiftwidth=2
set expandtab
set autoindent
set fileformat=unix
set number
set relativenumber
set noerrorbells
set encoding=utf-8
set wildmenu
set smartcase
set ruler
set incsearch