Intereting Posts
Как настроить разделы SSD и HDD с помощью RAID? Киви производит огромные initramfs Почему я должен дважды вставить USB-накопитель для его установки? Текущие ресурсы для Linux Kernel Разработка драйверов Какой агент GPG использует Elementary Luna? Почему не следует сообщать, что родительский shell fork () дочерний процесс перед execve () командой? Диск на клавише считывается только на каждом компьютере Значок SSH не отображается Функция, вызывающая другую функцию со списком аргументов, не работает Существует ли такая команда, которая показывает пропускную способность сети и доступ к файлам запущенных процессов Могу ли я использовать ~ / .config / вместо ~ / для произвольных пакетов? Как я могу ответить на приглашение в сценарии оболочки, работающем в фоновом режиме? Как обеспечить, чтобы Bluetooth был отключен после загрузки? Как включить параметры для установленных портов в FreeBSD? Создание контрольной суммы архива 7zip, созданного из создаваемого файла tar

Проверка скрипта скрипта Vim

" Get running OS let os = "" if has("win32") let os="win" else if has("unix") let s:uname = system("uname") if s:uname == "Darwin" let os="mac" else let os="unix" endif endif endif " Brackets expanding let preBracket="`" if os=="mac" let preBracket="$" endif exe 'vnoremap' . preBracket . '1 <esc>`>a)<esc>`<i(<esc>' exe 'vnoremap' . preBracket . '2 <esc>`>a]<esc>`<i[<esc>' exe 'vnoremap' . preBracket . '3 <esc>`>a}<esc>`<i{<esc>' exe 'vnoremap' . preBracket . '$ <esc>`>a"<esc>`<i"<esc>' exe 'vnoremap' . preBracket . 'q <esc>`>a''<esc>`<i''<esc>' exe 'vnoremap' . preBracket . 'e <esc>`>a"<esc>`<i"<esc>' " Map auto complete of (, ", ', [ exe 'inoremap ' . preBracket . '1 ()<esc>i' exe 'inoremap ' . preBracket . '2 []<esc>i' exe 'inoremap ' . preBracket . '3 {}<esc>i' exe 'inoremap ' . preBracket . '4 {<esc>o}<esc>O' exe 'inoremap ' . preBracket . 'q ''''<esc>i' exe 'inoremap ' . preBracket . 'e ""<esc>i' 

Как vimscript выше, я хочу сопоставить ярлык с ключевым словом расширения, зависящим от платформы vim. На самом деле мой macbook использует разный макет, но мне нравится простота использования символа “ `на клавиатуре, поэтому я сопоставляю с $, который остается на том же месте на Mac Pro-клавиатуре (макет da).

Но похоже, что сценарий отлично работает на Linux, но не работает на Mac. Я что-то пропустил или мне нужно добавить что-то, чтобы этот скрипт работал на Mac OSX?

я могу ответить на свой вопрос, для сравнения строки в vimscript мы должны использовать =~ вместо == . Обратный – !~

Поэтому отредактируйте эту строку, if s:uname == "Darwin" if s:uname =~ "Darwin" чтобы этот маленький скрипт работал.

Я переписываю это как функцию:

 function! GetRunningOS() if has("win32") return "win" endif if has("unix") if system('uname')=~'Darwin' return "mac" else return "linux" endif endif endfunction let os=GetRunningOS() 

Я надеюсь, что это помогает кому-то. В случае, если кто-то заинтересован в моем .vimrc , проверьте мои dotFiles

Linux, OS X, FreeBSD, UNIX и дистрибутив (Debian).

 " OS Platform Detection let g:platform = 0 let g:distro = 0 " more distros to detect: "https://www.novell.com/coolsolutions/feature/11251.htm://www.novell.com/coolsolutions/feature/11251.html let g:uname = substitute(system("uname"), '\n\+$', '', '') if filereadable("/etc/debian_version") let g:platform="Linux" let g:distro="Debian" elseif has('mac') let g:platform="Darwin" let g:distro="OS X" elseif g:uname == "FreeBSD" let g:platform="FreeBSD" elseif has('unix') let g:platform="UNIX" elseif has('win32') || has('win64') "win32 also matches on win64 so redundant let g:platform="Windows" elseif has('win32unix') let g:platform="Cygwin" else let g:platform="Unknown" endif