копирование текста от энергии до окон

Конкретный подход

Если я правильно понял, вы пытаетесь сделать что-то вроде этого:

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

Более общий подход (PHP 7.1 +)

Вот гораздо более общий подход, который принимает имя функции и значение по умолчанию и возвращает функцию, которая передает это значение в качестве первого параметра, допуская последующие параметры:

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

27
задан Sagar Jain 18 September 2015 в 08:42
поделиться

6 ответов

Я не вижу вреда в использовании командных клавиш Windows в GVim. С другой стороны, можно также использовать горячую клавишу "+y для того, чтобы дергать (копирование) и "+p для вставки к и от системного буфера обмена. Это работает над большинством платформ (экземпляры Vim, которые непосредственно не присоединены к X-серверу на Unix, являются немного более трудными).

19
ответ дан Konrad Rudolph 28 November 2019 в 04:33
поделиться

Я имею

set clipboard=unnamed

в моем ~/.vimrc. Тогда "yy", "D", и т.д., дергают непосредственно к буферу обмена Windows. Это также работает в MacVim. Для Linux gvim, необходимо не забыть снабжать префиксом эти операции "+

29
ответ дан George V. Reilly 28 November 2019 в 04:33
поделиться

согласно вышеупомянутым ответам:

"*y
"*p

Используя ctrl-v сделает ввод управляющих символов жестким в режиме вставки, и ctrl-v является визуальным блоком в нормальном режиме, хотя так ctrl-q.

Лично нашли следующий довольно естественный & мизинец, дружественный

vmap <a-c> "*y 
imap <a-p> "*p
9
ответ дан sjh 28 November 2019 в 04:33
поделиться

Не используйте привязку окон, поскольку Вы тогда не будете в состоянии быть столь же хорошими в Vim на других платформах.

Использование "*y - копируют в системный буфер обмена. Это работает хорошо над Mac OS, Windows, Linux.

8
ответ дан osgx 28 November 2019 в 04:33
поделиться

Если Вы хотите скопировать с окна (или с энергии), попробуйте:

:set paste

, Но быть осторожными другими опциями может быть изменен. Все детализировано в:

:help paste

Hope это помогает.

3
ответ дан Taurus Olson 28 November 2019 в 04:33
поделиться

Для Windows 7 вам нужно отредактировать файл конфигурации vim по адресу:

C:\users\<User>\vimfiles\vimrc

, просто добавьте следующую строку в файл конфигурации:

set clipboard=unnamed
2
ответ дан Zhe M. 28 November 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: