Как получить список всех установленных цветовых схем в Vim?

431

Есть ли способ получить список всех установленных цветовых схем в Vim? Это сделало бы очень легко выбрать один, не глядя на .vimкаталог.

tunnuz
источник

Ответы:

620

Тип

:colorschemeзатем Spaceследует TAB.

или, как сказал Питер,

:colorschemeзатем SpaceследуетCTRLd

Краткая версия команды такова, :coloчто вы можете использовать ее в двух предыдущих командах вместо использования «длинной формы».

Если вы хотите найти и просмотреть больше тем, существуют различные веб-сайты, такие как Vim colors

Ксавье Т.
источник
41
Также попробуйте<c-d>
Питер Ринкер
1
<cd> на самом деле лучше, если у вас установлено много схем.
Ксавье Т.
2
Или, если у вас есть, :set wildmenuвы получите тот же эффект, что и <c-d>при нажатии на вкладку.
Conrad.Dean
Работал для меня после того, как я добавил пространство после :colorscheme. Может быть, это что-то тривиальное, однако мне потребовалось время, чтобы раскрыть.
jutky
4
:coloне совсем короткая форма . Это просто завершено, потому что нет конфликтующих команд. Если вы сделали команду типа «colobanana», то у вас :coloбудет более одной «длинной формы», поэтому она не будет работать так, как это было предложено.
dylnmc
53

Вы можете увидеть список цветовых схем в /usr/share/vim/vimNN/colorsNNверсией, например, vim74для VIM 7.4).

Это объясняется здесь .

На серверах Linux я использую через SSH, TABпечатает ^Iи CTRLdпечатает ^D.

Фабьен
источник
10
Это пропускает цветовые схемы, установленные пользователем (в домашнем каталоге).
Кристиан Чиупиту
4
Путь к таблицам цветов, именно то, что я искал, спасибо!
Corepuncher
1
Обратите внимание, что NNin vimNNбудет соответствовать версии vim, например, vim74для vim 7.4. Просто хотел указать на это, потому что я медленный, и это заставило меня сделать двойной дубль, когда я пошел посмотреть;)
Адам П
1
@AdamP Я добавил точность в ответе.
Фабьен
43

Просто для удобства, поскольку я вижу, что есть много людей, которые ищут эту тему и слишком ленивы ... извините, заняты, чтобы проверить себя (включая меня). Вот список стандартного набора цветовых схем для Vim 7.4:

blue.vim
darkblue.vim,
delek.vim
desert.vim
elflord.vim
evening.vim
industry.vim                                                                                                                                                 
koehler.vim                                                                                                                                                  
morning.vim                                                                                                                                                  
murphy.vim                                                                                                                                                   
pablo.vim                                                                                                                                                    
peachpuff.vim                                                                                                                                                
ron.vim                                                                                                                                                      
shine.vim                                                                                                                                                    
slate.vim                                                                                                                                                    
torte.vim                                                                                                                                                    
zellner.vim 
runlevel0
источник
5
Очень полезный список. Для тех, у кого глаза старшего возраста и кто еще более занят, вот те, которые я нашел наиболее читаемыми: делек, келер, сланец и зельнер. Я выбрал Зеллнер.
theRiley
Хороший выбор, но, может быть, слишком много красного цвета для меня. Я предпочитаю пустыню, которая использует бирюзовый / светло-голубой. (В vim введите: пустыня цветов)
Халтос
Я всегда использовал torte, который, как мне кажется, имеет хороший контраст и не пытается быть «стилем», и не «тратит пропускную способность контраста», делая цвета похожими.
NeilG
15

Если вы хотите установить плагин, я рекомендую https://github.com/vim-scripts/CycleColor .

цикл по всем установленным цветовым схемам. Хороший способ легко выбрать цветовую схему.

Джон С Эрлс
источник
9

Вот небольшая функция, которую я написал, чтобы попробовать все схемы цветов в каталоге $ VIMRUNTIME / colors.

Добавьте указанную ниже функцию в ваш vimrc, затем откройте исходный файл и вызовите функцию из команды.

function! DisplayColorSchemes()
   let currDir = getcwd()
   exec "cd $VIMRUNTIME/colors"
   for myCol in split(glob("*"), '\n')
      if myCol =~ '\.vim'
         let mycol = substitute(myCol, '\.vim', '', '')
         exec "colorscheme " . mycol
         exec "redraw!"
         echo "colorscheme = ". myCol
         sleep 2
      endif
   endfor
   exec "cd " . currDir
endfunction
Chappar
источник
1
call DisplayColorSchemes ()
Haagenti
8

Если у вас есть ВИМ скомпилирован с +menu, вы можете следовать меню с :helpиз console-menu. Оттуда вы можете перейти к Edit.Color\ Schemeтому же списку, что и в gvim.

Другой метод - использовать классный скрипт ScrollColors, который предварительно просматривает схемы цветов при прокрутке схем j/k.

nperson325681
источник
6

Взглянув на menu.vim моей системы (ищите «Подменю Color Scheme») и ответ @ chappar, я нашел следующую функцию:

" Returns the list of available color schemes
function! GetColorSchemes()
   return uniq(sort(map(
   \  globpath(&runtimepath, "colors/*.vim", 0, 1),  
   \  'fnamemodify(v:val, ":t:r")'
   \)))
endfunction

Это делает следующее:

  1. Получает список доступных сценариев цветовой схемы по всем путям времени выполнения (globpath, runtimepath)
  2. Сопоставляет пути сценариев с их базовыми именами (удаляет родительские каталоги и расширения) (map, fnamemodify)
  3. Сортирует и удаляет дубликаты (uniq, sort)

Затем, чтобы использовать функцию, я делаю что-то вроде этого:

let s:schemes = GetColorSchemes()
if index(s:schemes, 'solarized') >= 0
   colorscheme solarized
elseif index(s:schemes, 'darkblue') >= 0
   colorscheme darkblue
endif

Это означает, что я предпочитаю «соляризованные», а затем «темно-синие» схемы; если ни один из них не доступен, ничего не делайте.

Рой
источник
3

Отличное решение, и моя благодарность вашим авторам. В течение многих лет я боролся с совершенно дурацкой цветовой схемой - с использованием SSH под Windows Vista для системы Redhat, типа терминала xterm. Редактор придумал бы черный фон и странные цвета для различных ключевых слов. Хуже того - эта странная цветовая схема остается в терминале xterm после выхода из Vim.

Действительно сбивает с толку.

Также Backspace не работал во время режима вставки, что было неприятно помнить - хотя Delete делала то же самое.

Лечение --

  1. На мониторе SSH выберите «Редактировать / Настройки».

    а. Выберите Настройки профиля / Цвета

    б. установите флажок «включить цвета ANSI»

    с. Стандартные цвета текста, вероятно, в порядке

  2. Добавьте эти строки в $ HOME / .vimrc:

    цветовая схема по умолчанию

    if & term == "xterm"

    установить t_kb = ^ H

    fixdel

    ENDIF

  3. ПРИМЕЧАНИЕ: ^ H ДОЛЖЕН быть напечатан как ctrl-V ctrl-H. Кажется странным, но это, кажется, работает.

Уильям Барретт
источник
0

Пытаться

set wildmenu
set wildmode=list:full
set wildcharm=<C-z>
let mapleader=','
nnoremap <leader>c :colorscheme <C-z><S-Tab>

в вашем ~/.vimrc.

В первых двух строках возможные совпадения отображаются в виде списков. Вы можете использовать один или оба.

Четвертая строка ставит лидера ,вместо значения по умолчанию \.

Последняя строка позволяет вам просто набрать, ,cчтобы получить список и подсказку, чтобы изменить вашу цветовую схему.

Третья строка эффективно позволяет Tabs появляться на ключевых картах.

(Конечно, все эти стратегии я узнал из интернета, и в основном так, совсем недавно.)

Брейди Трейнор
источник
0

Еще один более простой способ - во время редактирования файла - tabe ~/.vim/colors/ ENTER Откроет все темы на новой вкладке в окне vim.

Вы можете вернуться к файлу, который вы редактировали, используя - CTRL + W + W ENTER

Примечание: выше будет работать только если у вас есть .vim/colorsкаталог в вашем домашнем каталоге для текущей $USER (у меня более 70 тем)

[user @ host ~] $ ls -l ~ / .vim / colors | туалет

72

nitinr708
источник