2013-08-19 2 views
1

Я использую vim 7.3 с slimv для редактирования файлов * .lisp.slimv + vim: slimv игнорирует настройки вкладки vim

К сожалению, slimv в значительной степени игнорирует мои настройки отступа vim, которые время от времени создают беспорядок. Я хочу использовать вкладки для отступов и имеет следующие строки в vimrc:

set tabstop=4 shiftwidth=4 softtabstop=4 noexpandtab 
let g:paredit_mode = 0 

Slimv игнорирует эти параметры и настаивает на использование пространства для отступа, 2 места за отступ. я не сумел исправить «вкладки» поведение (так не вставляет 2 пространства вместо вкладки) закомментировав

setlocal expandtab 

в Vim\vimfiles\indent\lisp.vim, однако, я не совсем уверен, как исправить автоматический отступ, когда я вставить новый линия в середине формы lisp. В этом случае slimv снова игнорирует мои настройки и выравнивает новую строку, используя пробелы вместо вкладок, 2 пробела на уровень отступа.

Насколько я могу судить, отступ обрабатывается в function! SlimvIndent(lnum), который находится в `Vim/vimfiles/ftplugin/slimv.vim ', но я не совсем уверен, как исправить эту функцию (и это не так как представляется, имеет настраиваемые параметры в любом месте).

Как я могу исправить вкладку поведение в slimv? Он имеет полезные ярлыки (,e для оценки формы и т.д.), но проблема вкладки очень раздражает.

идеи?

+0

У вас есть (github) ссылка на плагин? – FDinoff

+0

@FDinoff: Я получил его [** здесь **] (http://www.vim.org/scripts/script.php?script_id=2531) Похоже, что он размещен на битбакете, самая последняя версия для разработки - [[ ** здесь **] (https://bitbucket.org/kovisoft/slimv). – SigTerm

+0

Я не могу воспроизвести 2 пробела на отступ. Однако я вижу плагин, используя сочетание вкладок и пробелов (когда вы нажимаете enter в середине выражения). Но он использует столько вкладок, сколько может, и заполняет остальные пробелами для выравнивания оператора – FDinoff

ответ

1

У меня есть фиксированный slimv, чтобы он вставлял вкладки (плюс пробелы для остальных столбцов) при отступе, если noexpandtab установлен после загрузки файла. Slimv до сих пор определяет expandtab по умолчанию, так что это не достаточно просто добавить :set noexpandtab к вашему .vimrc, но вы можете изменить это, а «после» или «после» команды, например:

au BufReadPost *.lisp set noexpandtab

Или просто просто введите :set noexpandtab в редактор в любое удобное для вас время.

Примите последнюю версию от Slimv repository. Я по-прежнему не рекомендую использовать вкладки в исходных файлах lisp, см. Мои комментарии ниже исходного сообщения о том, почему.

+0

Здравствуйте, я, наконец, нашел время, чтобы сделать какое-то программирование lisp ... ваша версия отличает ширину и стиль отступа, используемые в предыдущей строке, но она по-прежнему пытается вставлять пробелы в начале строки время от времени. Например, если я начну писать «defun» верхнего уровня и вставьте новую строку в середине формы, новая строка будет выровнена двумя пробелами, хотя она должна была вставить вкладку. В любом случае спасибо за помощь. Я помечаю ваш ответ как принятый, пока не найду другой способ исправить это. – SigTerm

+0

Отступ slimv основан на встроенной функции lispindent() vim, которая имеет твердое число отступов из двух столбцов. В настоящее время невозможно получить еще одну стандартную сумму отступов (например, 4 столбца) в slimv. Все, что я сделал, это добавить возможность иметь символы табуляции вместо пробелов, но стандартное количество отступов двух столбцов не изменилось. Я планирую переписать код отступа в slimv, чтобы он не использовал lispindent(). Если он будет готов, тогда можно будет настроить отступы. –

+0

Хорошо, спасибо за информацию. Также спасибо за исправление slimv - честно говоря, я не ожидал, что сам автор автоответчика ответит. – SigTerm

Смежные вопросы