Відповіді:
Ви можете використовувати substitute()
або визначити функцію:
function! Chomp(string)
return substitute(a:string, '\n\+$', '', '')
endfunction
Цей варіант закликає system
вас, а потім підбирає результат:
function! ChompedSystem( ... )
return substitute(call('system', a:000), '\n\+$', '', '')
endfunction
(Ця функція також доступна в моєму додатку Ingo-library як ingo#system#Chomped
.)
Chomp()
передає будь-які аргументи, до яких він потрапляє system()
, знімаючи з нового результату останній рядок і повертаючи його.
system()
має необов'язковий {input}
аргумент, і це обробляє будь-яке з них загально. Якщо вам це не потрібно, просто зробіть це звичайним способом.
let @z = systemlist('date')[0]
видаляє новий рядок для вас.
\n
для нового рядка. systemlist()
видаляє лише те \n
, а не будь-яке \r
.
Крістіан Брабандт перерахував на сайті superuser.com декілька різних методів .
Мені це подобається, тому що він короткий:
let @z = system("date")[:-2]
\r\n
тип закінчень рядків ...
\n
їх повернення.
call
синтаксис? Чому не просто датиChomp
параметр, який називається,string
а потім перейтиa:string
доsubstitute
?