Параметры функции локальны для функции.
awk '
function foo(x,y) {y=x*x; print "y in function: "y}
BEGIN {foo(2); print "y out of function: " y}
'
y in function: 4
y out of function:
При передаче меньшего количества значений функции, чем существуют параметры, дополнительные параметры просто пусты. Вы могли бы иногда видеть функции, определяемые как
function foo(a, b, c d, e, f) {...
где параметры после пробела являются локальными переменными и не предназначаются для принятия значения при вызове.
Никакая причина, почему это не может работать на локальные массивы:
awk '
function bar(x) {
split("hello world", x)
print "in: " x[1]
}
BEGIN {
x[1]="world"
bar()
print "out: " x[1]}
'
in: hello
out: world
Предполагая, что вы имели в виду : prev
(: p
- это сокращение от : print
, а не : previous
), вы можете добавить файл в список, отредактировав его:
:e filename
Или, если вы не хотите сразу переключаться на новый файл, вы можете добавить его в список аргументов:
:argadd filename
Список буферов отдельный, при редактировании нового файла файл действительно создает буфер, вы можете создать буфер без добавления в список аргументов:
:badd filename
Чтобы пройти по буферам, вы можете выполнить : bn
и : bp
.
Vim имеет встроенную справку. Вы можете прочитать раздел о списке аргументов с помощью команды : help список-аргументов
и получить список всех команд.
: argadd filename
, чтобы добавить файл в список аргументов. : argedit filename
, чтобы добавить файл и начать его редактирование. Для буферов и окон вы можете прочитать все о них в : h buffers
:
Резюме:
- Буфер - это текст файла в памяти. .
- Окно - это область просмотра в буфере.
- Вкладка - это набор окон.
И все о вкладках находится в : h tabpage
.
Вы можете использовать их для редактирования нескольких файлов в сеансе:
: tabe filename
, чтобы начать редактирование файла в новой вкладке. : vne filename
, чтобы начать редактирование файла в новом вертикально разделенном окне.