NullPointerException
s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException
. Они наиболее распространены, но другие способы перечислены на странице NullPointerException
javadoc.
Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException
, be:
public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
В первой строке внутри main
я явно устанавливаю ссылку Object
obj
равной null
. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException
, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.
(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
Остановитесь, остановитесь, остановитесь.
Это не то, как вкладки Vim разработаны, чтобы использоваться. На самом деле они неверно называются. Лучшее имя было бы "областью просмотра" или "расположением", потому что это что вкладка is— это - различное расположение окон [1 116] весь из Ваших существующих буферов.
Попытка разбить Vim в 1 вкладку == 1 буфер является упражнением в тщетности. Vim не знает или заботится, и он не будет уважать его на всем commands— в частности, что-либо, что использует буфер quickfix (:make
, :grep
, и :helpgrep
те, которые приходят на ум) счастливо проигнорирует вкладки, и нет ничего, что можно сделать для остановки этого.
Вместо этого:
:set hidden
:bn
, :bp
, :b #
, :b name
, и ctrl-6
для переключения между буферами. Мне нравится ctrl-6
самому (один, это переключается на ранее используемый буфер, или #ctrl-6
переключатели для буферизации номера #
). :ls
для списка буферов или плагина как [1 113] MiniBufExpl или BufExplorer. Я столкнулся с той же проблемой. Я хотел, чтобы вкладки работали как буферы, и мне никогда вполне удается получить их к. Решение, на котором я наконец обосновался, состояло в том, чтобы заставить буферы вести себя как вкладки!
Выезд плагин, названный Мини-Буферный Проводник , когда-то установленный и настроенный, Вы будете в состоянии работать с буферами фактически тот же путь как вкладки, не теряя функциональности.
Взгляд на: вкладки справки это не похоже на энергию, хотят работать способ, которым Вы делаете...
Буферы совместно используются через вкладки, таким образом, не кажется возможным заблокировать данный буфер для появления только на определенной вкладке.
Это - хорошая идея, все же.
Вы могли, вероятно, получить эффект, который Вы хотите при помощи терминала, который поддерживает вкладки, как multi-gnome-terminal, затем рабочие экземпляры энергии на каждой терминальной вкладке. Не прекрасный, хотя...
можно отобразить команды, которые обычно управляют буферами для управления вкладками, поскольку я сделал с gf в моем .vimrc:
map gf :tabe <cfile><CR>
я уверен, что можно сделать то же с [^
, я не думаю, что энергия поддерживает это для вкладок (все же). Я использую gt и gT для перемещения в следующие и предыдущие вкладки, соответственно. Можно также использовать Ngt, где N является числом вкладки. Одна обида, которую я имею, - то, что по умолчанию число вкладки не отображено в строке вкладки. Для фиксации этого я поместил пару функций в конце мой .vimrc файл (я не вставлял здесь, потому что это длинно и не отформатировало правильно).
Я использую буферы как вкладки, с помощью плагин BufExplorer и некоторые макросы:
" CTRL+b opens the buffer list
map <C-b> <esc>:BufExplorer<cr>
" gz in command mode closes the current buffer
map gz :bdelete<cr>
" g[bB] in command mode switch to the next/prev. buffer
map gb :bnext<cr>
map gB :bprev<cr>
С BufExplorer у Вас нет панели вкладок наверху, но с другой стороны он оставляет свободное место на Вашем экране, плюс Вы может иметь бесконечное число открытых файлов/буферов, и буферный список доступен для поиска...
Здесь немного поздно для стороны, но удивлен Я не увидел в этом списке следующего:
: tab sball
- это открывает новую вкладку для каждого открытого буфера.
: help switchbuf
- это контролирует поведение переключения буфера, попробуйте : set switchbuf = usetab, newtab
. Это должно означать переключение на существующую вкладку, если буфер открыт, или создание новой, если нет.