首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能使Neovim的电子地图成为一个额外的位置?

我怎样才能使Neovim的电子地图成为一个额外的位置?
EN

Stack Overflow用户
提问于 2022-04-25 23:54:45
回答 1查看 85关注 0票数 1

我试图重新映射'e‘键绑定与:nnoremap e mynewcommand,但我有点迷失了如何使当前的“字尾”完成一个额外的位置。

例如,现在如果我有word1 Xword2 word3 (X是当前位置),它就在这里结束:word1 wordX word3

有没有办法重新映射它,使它结束在字+1的位置结束?像这样:word1 word2X word3

谢谢!

Edit1:出于一些奇怪的原因,当重新映射::nnoremap <S-l> e时,效果就像一种魅力--但是,:nnoremap <S-j> b并不适用于。有人知道吗?

Edit2:按照要求,这是我的vim.init:

代码语言:javascript
复制
:nnoremap t r
:nnoremap <SPACE> <INSERT>
:vnoremap i <UP>
:vnoremap <SPACE> <INSERT>
:nnoremap i <UP>
:nnoremap k <DOWN>
:nnoremap j h
:nnoremap <S-l> e 
:nnoremap <S-j> b 
:nnoremap a <S-A>
:nnoremap vv <S-V>
:vnoremap k <DOWN>
:vnoremap j <LEFT>
:nnoremap dw daw
:inoremap jh <Esc>

" Settings.

set nocompatible
set showmatch
set ignorecase
set tabstop=4
set softtabstop=4
set expandtab
set shiftwidth=4
set autoindent
set number 
set clipboard=unnamedplus
set ttyfast

" Vim-plug (Plugin Manager)

call plug#begin()
Plug 'itchyny/lightline.vim'
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
call plug#end()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-26 07:04:11

First:Vim (和Neovim)没有“映射”,所以您所做的不是“映射”,而是“映射”(或者“映射”,如果您真的想要的话)。

第二:正如有人已经指出的,f<Space>已经满足了您的需要,所以您可能不应该为此花费那么多精力。

第三代<S-l><S-j>是复杂而不必要的表达方式,可以说是LJ。保持配置简单。

第四:help J:help L本身就是两个非常有用的命令,因此您应该仔细考虑重写它们的相对好处。尤其是像这样琐碎的事情。

第五版:in nnoremap <key> e的可读性不强,可能会在草率格式化后消失。您应该考虑这些替代符号:

代码语言:javascript
复制
nnoremap <key> e<Space>
nnoremap <key> el
nnoremap <key> e<Right>

甚至:

代码语言:javascript
复制
nnoremap <key> f<Space>

第六:您解释您的情况的方式不太清楚:

代码语言:javascript
复制
word1 Xword2 word3
word1 wordX word3

2去哪儿了?光标到底在哪个字符上?你能用更明确的方式重写它吗?类似于:

目前的行为:

代码语言:javascript
复制
word1 word2 word3
     ^               " position of the cursor before e
          ^          " position of the cursor after e

期望的行为:

代码语言:javascript
复制
word1 word2 word3
     ^               " position of the cursor before <key>
           ^         " position of the cursor after <key>

第七:我可以理解对nnoremap L e<Space>的需求,因为希望光标在当前单词之后立即着陆似乎是一件合理的事情。您可能想要在那里放置一些东西,或者插入一个括号,或者其他什么。但我无法想象一种足够普遍的情况,足以证明nnoremap J b<Space>是合理的。你到底想用那张地图做什么?你想解决什么问题?更重要的是,“不起作用”意味着什么?

您是否试图通过在word之前登陆光标来镜像您的L映射?由于<Space>将光标移向右侧,所以b<Space>显然无法工作,但以下可能是:

代码语言:javascript
复制
nnoremap <key> b<Left>
nnoremap <key> bh
nnoremap <key> b<BS>

甚至:

代码语言:javascript
复制
nnoremap <key> F<Space>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72006869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档