" Modify the up/down keys so that they move per virtual (rather than
" physical) line if a line is displayed wrapped and no count for the
" command has been specified. Always use logical line steps for quickfix
nnoremap <expr> k ((v:count) ? 'k' : ((&buftype == 'quickfix') ? 'k' : 'gk'))
nnoremap <expr> j ((v:count) ? 'j' : ((&buftype == 'quickfix') ? 'j' : 'gj'))
nnoremap <expr> <Up> ((v:count) ? 'k' : ((&buftype == 'quickfix') ? 'k' : 'gk'))
nnoremap <expr> <Down> ((v:count) ? 'j' : ((&buftype == 'quickfix') ? 'j' : 'gj'))
xnoremap k gk
xnoremap j gj
vnoremap <Up> gk
vnoremap <Down> gj
" Move to start and end of virtual line (this will default to normal behaviour
" if the line isn't wrapped)
nnoremap 0 g0
nnoremap <Home> g0
nnoremap ^ g^
nnoremap $ g$
nnoremap <End> g$
" These mappings need to deal with virtual line numbers in 'insert' mode,
" but they need to do it without messing up normal 'completion menu' operation
inoremap <expr> <Up> pumvisible() ? "\<Up>" : "\<C-o>gk"
inoremap <expr> <Down> pumvisible() ? "\<Down>" : "\<C-o>gj"
3条答案
按热度按时间n6lpvg4x1#
您可以使用
textwidth
选项限制线条的宽度(请参见:help tw
)。例如,如果要将宽度限制为80列,可以使用:用途:
使用此选项,当您键入的内容超过80列时,Vim将自动插入一个换行符。
oo7oh9g92#
你需要后退一点,使用
gj
和gk
,它们在 Package 行中向下和向上。由于
gj
和gk
与j
和k
在非换行行中的工作方式完全相同,因此您可以安全地将j
或<down>
Map到gj
,并将k
或<up>
Map到gk
,从而使其无缝连接。是的,它没有解决埃迪的直接问题,但它解决了他原来的问题(垂直移动 Package 线),导致他的一个穷人的变通办法,反过来,把他在这种情况下。
svgewumm3#
这些是我使用的Map。他们处理我到目前为止遇到的所有案件。