Если я правильно понял, вы пытаетесь сделать что-то вроде этого:
function create_action_for($action, $type)
{
$function_name = 'obj_' . $action;
return function () use ($function_name, $type) {
$function_name($type);
};
}
$obj_add_article = create_action_for('add', 'article');
$obj_add_article();
Демонстрация здесь: https: // 3v4l. org / 48jbd
Вот гораздо более общий подход, который принимает имя функции и значение по умолчанию и возвращает функцию, которая передает это значение в качестве первого параметра, допуская последующие параметры:
function create_action_for($function_name, $first_param_value)
{
return function (...$args) use ($function_name, $first_param_value) {
return $function_name($first_param_value, ...$args);
};
}
function obj_add($type, $param1, $param2)
{
echo 'adding ', $type, ' with ', $param1, ' and ', $param2;
}
$obj_add_article = create_action_for('obj_add', 'article');
$obj_add_article('something', 'stuff');
Демонстрация здесь: https://3v4l.org/kmTpC
Я не вижу вреда в использовании командных клавиш Windows в GVim. С другой стороны, можно также использовать горячую клавишу "+y
для того, чтобы дергать (копирование) и "+p
для вставки к и от системного буфера обмена. Это работает над большинством платформ (экземпляры Vim, которые непосредственно не присоединены к X-серверу на Unix, являются немного более трудными).
Я имею
set clipboard=unnamed
в моем ~/.vimrc. Тогда "yy", "D", и т.д., дергают непосредственно к буферу обмена Windows. Это также работает в MacVim. Для Linux gvim, необходимо не забыть снабжать префиксом эти операции "+
согласно вышеупомянутым ответам:
"*y
"*p
Используя ctrl-v сделает ввод управляющих символов жестким в режиме вставки, и ctrl-v является визуальным блоком в нормальном режиме, хотя так ctrl-q.
Лично нашли следующий довольно естественный & мизинец, дружественный
vmap <a-c> "*y
imap <a-p> "*p
Не используйте привязку окон, поскольку Вы тогда не будете в состоянии быть столь же хорошими в Vim на других платформах.
Использование "*y
- копируют в системный буфер обмена. Это работает хорошо над Mac OS, Windows, Linux.
Если Вы хотите скопировать с окна (или с энергии), попробуйте:
:set paste
, Но быть осторожными другими опциями может быть изменен. Все детализировано в:
:help paste
Hope это помогает.
Для Windows 7 вам нужно отредактировать файл конфигурации vim по адресу:
C:\users\<User>\vimfiles\vimrc
, просто добавьте следующую строку в файл конфигурации:
set clipboard=unnamed