标签: keymapping

键盘映射中的Vim怪异

我想插入空行而不进入插入模式,我使用了这个键映射:

nomap go o <esc>
Run Code Online (Sandbox Code Playgroud)

这确实创建了空白行,但引入了一些奇怪的行为.我有聪明的缩进和自动设置.新行遵循缩进但不删除它们,即使这样做会手动自动删除冗余空格.它还添加了每个光标所在的单个空格.

任何人都有任何见解来解释这种行为?

vim keymapping

2
推荐指数
1
解决办法
186
查看次数

在vim中,如何将键映射到整个缓冲区的切换折叠?

我想映射一个键来切换foldmethod=indent和不折叠.我怎样才能做到这一点?

vim keyboard-shortcuts keymapping

2
推荐指数
1
解决办法
3318
查看次数

Vim:如何创建键映射到:编辑并跳转到最后一行?

我将键映射F2到refresh(:edit)当前打开的文件.当我在外面更新文件时(日志文件末尾添加了新行),我在观看日志文件时使用此功能来更新屏幕.

nnoremap <silent> <F2> :edit<CR>
Run Code Online (Sandbox Code Playgroud)

我想在刷新后跳转到文件的末尾.

如何创建键映射,同时执行:edit并跳转到文件末尾(快捷方式G)?

vim keymapping

2
推荐指数
1
解决办法
183
查看次数

VIM - 如何为键分配不同的映射,具体取决于行是否为空?

我想根据上下文分配不同的命令.

我正在尝试做这样的事情:

if line is empty:
    map x key to y command
else
    map x key to z command
Run Code Online (Sandbox Code Playgroud)

vim keymapping macvim

2
推荐指数
2
解决办法
130
查看次数

如何在Emacs次要模式下重新绑定TAB和RET?

我试图定义我的次要模式,之后模仿它isearch-mode(因为它是一种交互式搜索和替换工具,我认为它可能是一个很好的起点).我的命令运行良好(在全局键绑定上测试),但我在本地(在次模式映射中)将它们绑定到某些键(即TAB和RET)时遇到严重问题.我正在做这样的事情:

(defvar my-mode-map
  (let ((map (make-sparse-keymap)))
    (define-key map "\s" 'my-command)
    (define-key map "\t" 'another-one)
    (define-key map "\r" 'yet-another)
    map))
Run Code Online (Sandbox Code Playgroud)

(当然,我确实把我的keymap放到了minor-mode-map-alist中.)

虽然空间绑定命令工作正常,但TAB和RET在某种程度上没有.如果我改变,例如,"\ t"改为"[f11]",它可以正常工作.我尝试使用"矢量符号"([?\ t]),结果相同(在我的键盘映射之后,这并不奇怪).可能会发生什么?

编辑:澄清问题,我试图隔离它,我想出了以下代码.假设我想要一个人为的,相当小的次要模式tabbang,其中TAB键插入一个感叹号.我这样做:

(defvar tabbang-mode)
(add-to-list 'minor-mode-alist '(tabbang-mode tabbang-mode) t)

(defvar tabbang-mode-map
  (let ((map (make-sparse-keymap)))
    (define-key map [?\t] 'tabbang-insert-bang)
    (define-key map [?\C-\t] 'tabbang-insert-bang)
    (define-key map [f11] 'tabbang-insert-bang)
    (define-key map [?\r] 'tabbang-done)
    (define-key map [t] 'tabbang-other-char)
    map))
(add-to-list 'minor-mode-map-alist `(tabbang-mode . ,tabbang-mode-map) t)

(defun tabbang-insert-bang ()
  (interactive)
  (insert "!"))

(defun tabbang-mode ()
  (interactive) …
Run Code Online (Sandbox Code Playgroud)

emacs elisp keymapping

2
推荐指数
1
解决办法
1331
查看次数

如何添加vim keymap

编程时,我经常使用以下两行:

sprintf(buff,"%s", __func__);

putrsUART(buff);
Run Code Online (Sandbox Code Playgroud)

是否可以设置任何键盘快捷键来插入这两行?例如,当我在命令模式下键入\ sp时,这些函数会添加到我文件中的光标位置.这可能吗?如果是这样,我如何映射我的密钥?

提前致谢.

vim keymapping

2
推荐指数
1
解决办法
289
查看次数

Vim - 如何使用<CL>之类的键映射命令?

我几乎可以肯定,别人也有这个问题,这可能是重复的,但我不知道叫什么命令一样<C-L>,所以我还没有得到任何运气找到一个现有的问题.如果这是重复,请重定向我.

问题来自vimrc部分,其内容如下:

" Map <C-L> (redraw screen) to also turn off search highlighting until the
" next search
nnoremap <C-L> :nohl<CR><C-L>
Run Code Online (Sandbox Code Playgroud)

那么我按哪种键组合(在哪种模式下)来输入<C-L>映射?

vim keymapping

2
推荐指数
2
解决办法
2241
查看次数

仅当源文件在 LaTeX 中时 Vim 才重新映射

我的键盘上有一个 ½ 键,有时我想在 Vim 中编辑 LaTeX 时使用它来扩展到正确的表达式,即\frac{1}{2}.

我知道我应该做类似的事情:

inoremap ½ \frac{1}{2}
Run Code Online (Sandbox Code Playgroud)

现在,我如何使这项工作仅适用于 LaTeX 文件?

vim keymapping

2
推荐指数
1
解决办法
1298
查看次数

如何忽略VIM键映射命令系列中的错误?

我正在编辑线移动的关键映射,如下所示:

vnoremap <silent> <C-j> :m '>+1<CR>gv
vnoremap <silent> <C-k> :m '<-2<CR>gv
Run Code Online (Sandbox Code Playgroud)

它们应该上下移动行块,并且在大多数情况下工作正常,除了文件的顶部和底部.

当我选择线1 2并输入ctrl-k时,确定它不能向上移动,而预期的行为是线1 2仍然在视觉模式中高亮显示.

当前的外观是,线1 2不再突出显示.我知道那是因为":m'< - 1"失败了,那么gv就不会被执行了.

所以我的问题是如何忽略这个错误以确保gv执行呢?或其他一些解决方案?

请注意,我知道解决方案linemovement.vim.它在两个独立的命令和一些函数中运行它们.虽然我认为这应该是一个轻量级的代码.

vim keymapping

2
推荐指数
1
解决办法
850
查看次数

通过回车触发的vim键映射

我在Windows 10上使用gvim并尝试获得一个好的键盘映射来打开垂直拆分到新文件.我第一次尝试

nnoremap <c-m><c-m> :vnew<CR>
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,如果我在正常模式下连续两次回车,我会得到一个新的垂直分割窗口.所以我从关键地图中取出了尾随回车

nnoremap <c-m><c-m> :vnew
Run Code Online (Sandbox Code Playgroud)

如果我在正常模式下按回车三次,仍会得到一个新的垂直分割窗口,由于某种原因,我发现自己正在做.

当_vimrc中的键映射中没有回车符时,为什么回车设置关键映射?我重新启动vim没有任何效果.

vim keymapping

2
推荐指数
1
解决办法
116
查看次数

标签 统计

keymapping ×10

vim ×9

elisp ×1

emacs ×1

keyboard-shortcuts ×1

macvim ×1