Окружающая среда:Подставив^M в nvim сценарии
OS X: 10.11.3
NeoVim: 0.1.2-DEV
набор FileFormat = Юникс
Следующая Функция vim запускает zsh-скрипт, который возвращает заголовок страницы, URL-адрес, последнее измененное время и текущую дату и время.
function! SafariURL()
let saf_data=system(shellescape('/Users/xxx/Documents/zsh scripts/saf_grab.sh'))
let saf_sub=substitute(saf_data, "^M", "\r","g")
call append(17,saf_sub)
end function
saf_grab.sh сценарий содержит следующий код:
mytext=$(/usr/bin/osascript << END
tell application "Safari"
set selecTxt to (do JavaScript "(getSelection().toString())" in document 1)
set pgTitl to (do JavaScript "document.title" in document 1)
set pgDate to (do JavaScript "document.lastModified" in document 1)
set myURL to URL of front document
set copyText to selecTxt & "[" & pgTitl & "]" & "(" & myURL & ")" & return & "Page Last Modified:" & pgDate & return & "Clipped On:" & (current date)
return copyText
end
END)
echo $mytext
echo "$mytext" | bcopy
По некоторым причинам строку, который возвращается sf_grab.sh вставляет ^M
как разрывы строк, как показано ниже:
[Newline - Wikipedia, the free encyclopedia]^M(https://en.wikipedia.org/wiki/Newline)^MPage Last Modified:01/16/2016 13:07:02^MClipped On:Tuesday, 2 February 2016 at 11:00:37^@
Я попытался сделать замену в функции vim для замены этих символов на \r
, но это приводит к замене ^M
на ^M
.
Если изменить замену на \n
вместо \r
, то ^M
«s заменяются ^@
.
Не понимаю, почему исходный скрипт возвращает ^M
в первую очередь и как заменить их разрывами строк по мере необходимости.
Замена с помощью' \ r' вставок '^ M'. См. Мой комментарий к @Dasan – pdoak
Попробуйте% s/^ M/\ r/g после добавления – Zam
Это сработало. Спасибо. У вас есть идеи, почему 'let saf_sub = substitute (saf_data,"^M "," \ r "," g ")' не работает? – pdoak