Как я вижу список открытых файлов в Emacs? Или просмотрите каталог в Emacs?

Когда вы объявляете ссылочную переменную (т. е. объект), вы действительно создаете указатель на объект. Рассмотрим следующий код, в котором вы объявляете переменную примитивного типа int:

int x;
x = 10;

В этом примере переменная x является int, и Java инициализирует ее для 0. Когда вы назначаете его 10 во второй строке, ваше значение 10 записывается в ячейку памяти, на которую указывает x.

Но когда вы пытаетесь объявить ссылочный тип, произойдет что-то другое. Возьмите следующий код:

Integer num;
num = new Integer(10);

Первая строка объявляет переменную с именем num, но она не содержит примитивного значения. Вместо этого он содержит указатель (потому что тип Integer является ссылочным типом). Поскольку вы еще не указали, что указать на Java, он устанавливает значение null, что означает «Я ничего не указываю».

Во второй строке ключевое слово new используется для создания экземпляра (или создания ) объекту типа Integer и переменной указателя num присваивается этот объект. Теперь вы можете ссылаться на объект, используя оператор разыменования . (точка).

Exception, о котором вы просили, возникает, когда вы объявляете переменную, но не создавали объект. Если вы попытаетесь разыменовать num. Перед созданием объекта вы получите NullPointerException. В самых тривиальных случаях компилятор поймает проблему и сообщит вам, что «num не может быть инициализирован», но иногда вы пишете код, который непосредственно не создает объект.

Например, вы можете имеют следующий метод:

public void doSomething(SomeObject obj) {
   //do something to obj
}

В этом случае вы не создаете объект obj, скорее предполагая, что он был создан до вызова метода doSomething. К сожалению, этот метод можно вызвать следующим образом:

doSomething(null);

В этом случае obj имеет значение null. Если метод предназначен для того, чтобы что-то сделать для переданного объекта, целесообразно бросить NullPointerException, потому что это ошибка программиста, и программисту понадобится эта информация для целей отладки.

Альтернативно, там могут быть случаи, когда цель метода заключается не только в том, чтобы работать с переданным в объекте, и поэтому нулевой параметр может быть приемлемым. В этом случае вам нужно будет проверить нулевой параметр и вести себя по-другому. Вы также должны объяснить это в документации. Например, doSomething может быть записано как:

/**
  * @param obj An optional foo for ____. May be null, in which case 
  *  the result will be ____.
  */
public void doSomething(SomeObject obj) {
    if(obj != null) {
       //do something
    } else {
       //do something else
    }
}

Наконец, Как определить исключение & amp; причина использования Трассировки стека

15
задан Luke Girvin 4 September 2011 в 01:00
поделиться

10 ответов

C-x C-b откроется эти *Buffer List* буфер. В том буфере можно переместиться с обычными ключами по C-p , C-n , стрелка вниз , стрелка вниз , и т.д.

, Просмотр каталога так же прост как редактирование файла. Просто откройте каталог вместо файла. На моей машине Linux C-x C-f ВХОДЯТ/tmp открывает каталог, в то время как C-x C-f/tmp/myfile ВХОДИТ открывает файл.

6
ответ дан 1 December 2019 в 01:46
поделиться

Попробуйте Ctrl-x сопровождаемый Ctrl-b (в терминологии Emacs C-x C-b ) для списка буферов.

13
ответ дан 1 December 2019 в 01:46
поделиться

C-x d получает доступ к редактору каталога. C-x C-f сделает это также, если Вы дадите ему каталог вместо файла.

существует также ibuffer-mode, который позволяет Вам иметь дело со своими открытыми буферами очень похожим способом к Dired: http://www.emacswiki.org/cgi-bin/wiki/IbufferMode

Это включено с последними версиями Emacs, таким образом, Вам не, вероятно, придется загрузить его отдельно: попробуйте M-x ibuffer сначала.

3
ответ дан 1 December 2019 в 01:46
поделиться

M-x панель кнопок быстрого доступа ( веб-сайт панели кнопок быстрого доступа ) откроется кадр emacs, который перечисляет содержание текущего каталога в зависимости от буфера, в котором Вы находитесь. Кадр является небольшим и остается вне пути, таким образом, можно всегда глядеть на него при редактировании файлов. Это также может отфильтровать этот дисплей на основе типа файла с помощью переменной speedbar-supported-extension-expressions. Для наблюдения всех опций панели кнопок быстрого доступа введите M-x настраивать-группу панель кнопок быстрого доступа RET RET .

3
ответ дан 1 December 2019 в 01:46
поделиться

При просмотре каталогов с diredit рассмотрите использование вместо RET для изменения каталога.

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

1
ответ дан 1 December 2019 в 01:46
поделиться

M-x оболочка открывает оболочку, где можно просмотреть каталоги

1
ответ дан 1 December 2019 в 01:46
поделиться

Если Вы интересуетесь наблюдением дерева как структура для Ваших каталогов, источников, методы и т.д. пытаются использовать браузер кода emacs http://ecb.sourceforge.net/ .

1
ответ дан 1 December 2019 в 01:46
поделиться

C-x b ВКЛАДКА даст Вам автоматическое вместе со всеми открытыми буферами. С другой стороны, нажмите Buffers пункт меню, если Вы находитесь в оконной версии (не уверенный, если существует терминальный эквивалент этого).

РЕДАКТИРОВАНИЕ: Также , C-x C-f позволит Вам открыть файл, и можно использовать ВКЛАДКУ для автоматического заполнения, затем ВКЛАДКА снова для просмотра файлов/каталогов в том текущем каталоге (предполагающий, что первая вкладка не автоматически заполняла что-то).

2
ответ дан 1 December 2019 в 01:46
поделиться

Кроме того, если Вы хотите избавиться от списка открытых буферов, введите C-x 1 .

0
ответ дан 1 December 2019 в 01:46
поделиться

Я часто должен находить другой файл в "текущем каталоге", т.е. каталог файла, который я редактирую.

Для быстрого открытия этого каталога в diredit я использую:

C-x C-f C-j

0
ответ дан 1 December 2019 в 01:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: