Вим движется с HJKL в длинные строки (строки экрана) - PullRequest
17 голосов
/ 09 февраля 2011

enter image description here

Подсвеченный текст - это массив, в котором я хочу переместиться.Я должен нажать g, прежде чем нажать j, чтобы переместить строку вниз.Есть ли какое-то отображение для моего .vimrc, что я могу просто использовать hjkl для перемещения по строкам экрана, не нажимая g каждый раз.

Спасибо за вашу помощь, Матиас

Ответы [ 4 ]

20 голосов
/ 09 февраля 2011

Вы можете переназначить клавиши j и k (не уверены, действительно ли вам нужны h и l ..)

:map j gj
:map k gk

После того, как вы их попробовали и добавили, добавьте ихна ваш .vimrc без ведущего :

15 голосов
/ 10 февраля 2011

Я использую следующий фрагмент, который помогает во всех формах навигации, включая такие вещи, как $ до конца строки и т. Д.

" mapping to make movements operate on 1 screen line in wrap mode
function! ScreenMovement(movement)
   if &wrap
      return "g" . a:movement
   else
      return a:movement
   endif
endfunction
onoremap <silent> <expr> j ScreenMovement("j")
onoremap <silent> <expr> k ScreenMovement("k")
onoremap <silent> <expr> 0 ScreenMovement("0")
onoremap <silent> <expr> ^ ScreenMovement("^")
onoremap <silent> <expr> $ ScreenMovement("$")
nnoremap <silent> <expr> j ScreenMovement("j")
nnoremap <silent> <expr> k ScreenMovement("k")
nnoremap <silent> <expr> 0 ScreenMovement("0")
nnoremap <silent> <expr> ^ ScreenMovement("^")
nnoremap <silent> <expr> $ ScreenMovement("$")
7 голосов
/ 09 февраля 2011

Вы можете просто переназначить j и k (например) в gj и gk:

" map j to gj and k to gk, so line navigation ignores line wrap
nmap j gj
nmap k gk
1 голос
/ 25 апреля 2012

Это отличная идея для редактирования длинных текстовых файлов, таких как латексные документы.Но это не очень хорошая идея при редактировании кода, так как он может испортить некоторые макросы (как замечает Джелера в ответе Неда).Мой компромисс состоит в том, чтобы включить его только в режиме вставки (и замены), а не для чего-либо еще (я не знаю ни одного макроса, который я использую в режиме вставки, использующего клавиши навигации):

" move on soft lines in insert mode
inoremap <Down> <C-o>g<Down>
inoremap <Up> <C-o>g<Up>

(адаптировано из этот ответ )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...