как реализуется softlink vimdiff - PullRequest
3 голосов
/ 16 января 2012

Я обнаружил, что утилита vimdiff - это просто мягкая ссылка на vim.оба из них расположены под /usr/bin/ в моей коробке Suse11.и vimdfiff - это мягкая ссылка на vim.интересно то, что vimdiff file1 file2 на самом деле эквивалентен vim -d file1 file2, поэтому в этом смысле опция -d автоматически вставляется в программную ссылку, поэтому мой вопрос так же прост, как Как?

1 Ответ

11 голосов
/ 16 января 2012

Vim в своей функции main() использует argv[0] для различения своего исполняемого имени vim или vimdiff, или т. Д.

Ссылка на vim main.c , которая выполняет эту проверку для дифференциации rvim, rview, gvim, gview, vimdiff, gvimdiff, ex, exim.

/*
 * Check for: [r][e][g][vi|vim|view][diff][ex[im]]
 * If the next character is "e" we run in Easy mode.
 * If the next character is "g" we run the GUI version.
 * If the next characters are "view" we start in readonly mode.
 * If the next characters are "diff" or "vimdiff" we start in diff mode.
 * If the next characters are "ex" we start in Ex mode.  If it's followed
 * by "im" use improved Ex mode.
 */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...