vimMapctrl-;

vpfxa7rd  于 2022-11-11  发布在  其他
关注(0)|答案(5)|浏览(104)

在我的例子中,右移按钮是;
我想要Ctrl;将光标向右移动7个字符。我已经尝试了下面的.vimrcMap,但它不起作用:
nmap <c-;> 7;

krugob8w

krugob8w1#

就像先前评论说的,似乎“;““的格式不能为<C-;>
您可以测试键入Ctrl+V +键序列。
Ctrl+V + ;只给出;,而Ctrl+V + L给出^L
所以我认为vim不能识别<C-;>
有关密钥代码帮助页面的更多信息,请访问:

:help keycodes
:help <C-
hmmo2u0o

hmmo2u0o2#

我不确定,但可能是因为<C-;>没有Map到ASCII字符。只有@A-Z[\]^_在与Ctrl键组合时Map到ASCII字符(分别为0到31)。

编辑

我做了一些搜索,找到了this thread。在里面,据说gvim.exe的工作方式是我建议的:只使用有效的控制字符,不使用其他字符。有趣的是,vim.exe的工作方式不同,你可以做你想要的Map。

lb3vh1jj

lb3vh1jj3#

正如其他人所说,<c-;>无法Map。最好的解决方案是:

nmap <C-l> 7l
nmap <C-h> 7h

您可以改为重新Map常规光标键。
类似于以下内容也可以工作:

nmap <C-Right> 7l
nmap <C-Left> 7h

调整窗口大小的另一个示例:

" resize horzontal split window
nmap <C-Up> <C-W>-<C-W>-
nmap <C-Down> <C-W>+<C-W>+
" resize vertical split window
nmap <C-Right> <C-W>><C-W>>
nmap <C-Left> <C-W><<C-W><
njthzxwz

njthzxwz4#

你可以通过使用sxhkd + xkvbd来破解你的键盘。为了给予你一个想法,我可以MapC-LefMouse,这样我的系统就可以识别出它是MiddleMouse:


# put this in your sxhkdrc

ctrl + button1
    xvkbd -no-jump-pointer -xsendevent -text '\m2'

~/.config/nvim/lua/核心/实用程序

local M = {}

-- https://blog.devgenius.io/create-custom-keymaps-in-neovim-with-lua-d1167de0f2c2
-- https://oroques.dev/notes/neovim-init/
M.map = function(mode, lhs, rhs, opts)
    local options = { noremap = true }
    if opts then
        options = vim.tbl_extend("force", options, opts)
    end
    vim.api.nvim_set_keymap(mode, lhs, rhs, options)
end
return M

在我们的Map中。lua

local map = require('core.utils').map

-- copy to the primary selection on mouse release
map("v", "<LeftRelease>", '"*y')
map("i", "<C-MiddleMouse>", '<C-o>"*p')
map("n", "<C-MiddleMouse>", '"*p')

这个想法是让nvim识别您的Ctrl+;好像这是它可以处理的事情,就像我对这个初选解决方案所做的一样。最终,这些想法可以帮助某人找出其他问题的解决方案。

sd2nnvve

sd2nnvve5#

在KDE konsole终端中,您可以添加键绑定。
终端右键单击菜单--〉编辑当前配置文件--〉键盘--〉编辑
我已经添加了这样一个值:

Key Combination =>  ;+Ctrl  
Output          =>  \E[9;8~

然后您可以使用Ctrl-VCtrl-;最终的
如果成功打印了^[[9;8~,那么您可以使用Vim键绑定中的值,如下所示

inoremap  ^[[9;8~  <esc>A;

您还需要键入Ctrl-VCtrl-;对于inoremap之后的值

相关问题