Заставить Vim показать ВСЕ пробелы как персонажа

parent.location.href=parent.location.href

дает более гладкий результат, чем

parent.location.reload()

, последний заставляет полную перезагрузку, а первая, похоже, более эффективно обновляется почти как ajax.

717
задан 4 November 2009 в 18:17
поделиться

6 ответов

Как говорили другие, вы можете использовать

:set list

, который в сочетании с

:set listchars=...

будет отображать невидимые символы.
Сейчас нет явной опции, которую вы могли бы использовать для показа пробелов, но в списках вы можете установить символ, который будет отображаться для всего, НО пробелов. Например, мой выглядит так

:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<

, так что теперь, после того, как вы используете

:set list

, все, что явно не показано как что-то еще, на самом деле является простым старым пробелом.

Как обычно, чтобы понять, как listchars работает, воспользуйтесь справкой. Он предоставляет отличную информацию о том, какие символы могут отображаться (например, конечный пробел) и как это делать:

:help listchars

Может быть полезно добавить к нему переключатель, чтобы вы могли легко видеть изменения в процессе редактирования (источник: VIM: установить список! Как переключатель в .vimrc ):

noremap <F5> :set list!<CR>
inoremap <F5> <C-o>:set list!<CR>
cnoremap <F5> <C-c>:set list!<CR>
653
ответ дан 22 November 2019 в 21:30
поделиться

Вы можете использовать

:set list

, чтобы действительно увидеть структуру строки. Вы увидите табуляции и новые строки явно. Когда вы видите пустое поле, это на самом деле пустое место.

4
ответ дан 22 November 2019 в 21:30
поделиться

If by whitespaces you mean the ' ' character, my suggestion would just be a search/replace. As the others have hinted, set list changes non printing characters to a visible character that's configured in listchars.

To explicitly show spaces as some other character, something similar to the below should do the trick:

:%s/ /█/g

Then just undo the change to go back again.

(to get the █ I pressed this exact key sequence: :%s/ /CTRL-KFB/g)

22
ответ дан 22 November 2019 в 21:30
поделиться

: set list покажет все пробелы как символы. Все , кроме пространство будет выглядеть иначе, чем его нормальное состояние, а это значит, что если вы все еще видите простое старое пространство, это действительно простое старое пространство. :)

88
ответ дан 22 November 2019 в 21:30
поделиться

: включить список .

: отключить список nolist .

247
ответ дан 22 November 2019 в 21:30
поделиться

Если вы установите:

:highlight Search cterm=underline gui=underline ctermbg=none guibg=none ctermfg=none guifg=none

и затем выполните поиск пробела, каждый символ пробела будет показан как символ подчеркивания.

Вы можете использовать эту команду в удобной функции, которая переключает «подчеркивание» пробелов.

set hls
let g:HLSpace = 1
let g:HLColorScheme = g:colors_name
function ToggleSpaceUnderscoring()
    if g:HLSpace
        highlight Search cterm=underline gui=underline ctermbg=none guibg=none ctermfg=none guifg=none
        let @/ = " "
    else
        highlight clear
        silent colorscheme "".g:HLColorScheme
        let @/ = ""
    endif
    let g:HLSpace = !g:HLSpace
endfunction

Сопоставьте функцию с сочетанием клавиш с помощью:

nmap <silent> <F3> <Esc>:call ToggleSpaceUnderscoring()<CR>

NB: Определите функцию в vimrc после установки цветовой схемы.

73
ответ дан 22 November 2019 в 21:30
поделиться