2012-01-16 2 views
3

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

ответ

11

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

Link to 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. 
*/ 
+1

и 'ex' и' gvim' и 'view' и другие – Benoit

+0

Thx Benoit. включая ваши выводы тоже. –

Смежные вопросы