С помощью каких команд можно читать и писать в текстовые файлы не открывая их во вкладках?
Ну наподобие лога.
работа с файлами
Модератор: /dev/random
-
/dev/random
- Администратор
- Сообщения: 5427
- ОС: Gentoo
-
ZyX
- Сообщения: 355
- ОС: Gentoo
Re: работа с файлами
/dev/random писал(а): ↑11.01.2010 12:38
readfile()/writefile(); можно вызывать всякие sed'ы и прочее через system().
По-моему, лог лучше делать с помощью Python (:python). writefile перезаписывает
файл, что для лога нехорошо. Вот пример плагина, использующего Python для записи
лога:
Код: Выделить всё
python import vim
function LogSetup(filename)
python logfile=open(vim.eval('a:filename'), 'a')
endfunction
function Log(message)
let time=localtime()
python logfile.write("%s: %s\n" % (vim.eval('time'), vim.eval('a:message')))
python logfile.flush()
endfunctionКстати, насчёт доступа к элементу строки: тут есть засада: expr-[] даёт доступ
к байту. Вам нужен доступ к символу. Решение:
Вариант 1: разбить строку на список символов с помощью split(str, '\zs'). При
этом появляется возможность редактирования. Обратное превращение с помощью
join(list, '').
Вариант 2: для получения символа, начинающегося с байта idx можно
использовать matchstr: matchstr(str, '.', idx).