Вы сравниваете ссылки на объекты StringBuffer, а не фактические строки внутри StringBuffer.
System.out.println(sb1.toString().equals(sb2.toString()))
вернет true, и я предполагаю, что это то, чего вы ожидали или хотели достичь.
Есть много способов, но вот простой и понятный. добавьте эти строки в свой ~ / .vimrc
:
autocmd FileType html setlocal ts=2 sts=2 sw=2
autocmd FileType ruby setlocal ts=2 sts=2 sw=2
autocmd FileType javascript setlocal ts=4 sts=4 sw=4
Ответ Питера достаточно прост, но, к сожалению, варианты неверны. Вместо этого вам необходимо использовать следующие параметры:
autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 noexpandtab
Также обратите внимание:
: установить список
. : retab!
. +1 к ответу Питера, но Vim также предлагает другое решение. Если вы хотите сделать что-то более сложное, чем один setlocal
, например, настроить сразу несколько параметров, команд и сопоставлений, то на помощь приходит функция плагина типа файла vim.
Вам необходимо чтобы иметь плагин типа файла на
или плагин типа файла с отступом на
в вашем .vimrc
, а затем для создания плагина, например, для ruby, вы можете создать ~ / .vim / ftplugin / ruby.vim
. Технически вы можете использовать здесь любые команды, которые вам нравятся, для запуска при загрузке файла Ruby, но рекомендуемые включают setlocal
, map
, command - буфер
и определение функций. Более подробная информация находится в Руководстве пользователя;
Также есть хороший сценарий vim: DetectIndent , который пытается определить отступ в открываемом вами файле. Это очень удобно, если вы работаете со многими файлами с разным стилем кодирования.
Я использую автокоманду в моем .vimrc :
:autocmd BufReadPost * :DetectIndent