2014-09-01 6 views
0

Я использую vim для открытия файла довольно часто в окнах.Как я могу открыть txt-файл с помощью vim с помощью ярлыка [С помощью AutoHotKey]

Как правило, откройте файл right-click file -> выберите Edit with Vim. Я бы хотел открыть файл быстрее.

Я попытался с помощью так: right-click file ->pressv (потому что пресс v будет автоматически выбрать контекстное меню Edit с Vim). Но есть два контекстных меню, используя &v way (Редактировать с помощью Vim и Восстановить предыдущие версии).

Затем, я хочу использовать Autohotkey поможет сделать это. Но есть что-то не так с моими скриптами:

!e:: 
    ClipSaved := ClipboardAll 
    Clipboard = 
    Sendinput ^c 
    While(!Clipboard) 
    { 
    ClipWait,0.1,1 
    If A_Index > %MaxTimeWait% 
     Break 
    } 
    Select = %Clipboard% 
    IsFile := DllCall("IsClipboardFormatAvailable","int",15) 
    Clipboard := ClipSaved 
    ClipSaved = 
    If IsFile 
    { 
    Run, "C:\Marslo\MyProgramFiles\Vim\vim74\gvim.exe" "%Select" 
    } 
Return 

Ошибка: ahk

Что я должен сделать, можно открыть файл с помощью: Select file ->Alt + E? Спасибо в продвинутом режиме.

+2

Проблема в том, что говорится в сообщении. При использовании переменной в строке вам необходимо ** заключить ** ее в процентах знаков: «Выполнить», «C: \ Marslo \ MyProgramFiles \ Vim \ vim74 \ gvim.exe» «% Select%" ' – MCL

+0

Если файлы вы открываете в gVim share common extension, вы можете установить gVim как обработчик по умолчанию для этих типов файлов, поэтому вам не нужно будет играть с Autohotkey. – mMontu

+0

Привет @mMontu, Vim не может быть программой открытия файла по умолчанию. Например, python, я использую vim для его редактирования. Но мне нужен python.exe для запуска по умолчанию. – Marslo

ответ

2

Попробуйте этот код:

!e:: 
    ClipSaved := ClipboardAll 
    Clipboard = 
    Sendinput ^c 
    While(!Clipboard) 
    { 
    ClipWait,0.1,1 
    If A_Index > %MaxTimeWait% 
     Break 
    } 
    Select := Clipboard 
    IsFile := DllCall("IsClipboardFormatAvailable","int",15) 
    Clipboard := ClipSaved 
    ClipSaved = 
    If IsFile 
    { 
    Run, "C:\Marslo\MyProgramFiles\Vim\vim74\gvim.exe %Select%" 
    } 
Return 
  1. я исправил вашу команду Run. Select переменная должна быть заключена с %, вот так %Select% как предложено MCL.
  2. Я заменил Select = %Clipboard% на Select := Clipboard. I всегда старайтесь использовать := вместо =.

Действительно ли мой код работает на вас?

Кроме того, всегда используйте AutoHotkey и его документацию от http://ahkscript.org/ (текущая версия uptodate, новый официальный сайт)! AutoHotkey и его документация с autohotkey.com устарели, и у вас могут возникнуть проблемы с их использованием!

+0

Привет @ vasili111, Спасибо за вас и @MCL, любезно напоминаю, я исправил «Run», C: \ Marslo \ MyProgramFiles \ Vim \ vim74 \ gvim.exe ""% Выберите "' to ' Выполнить «C: \ Marslo \ MyProgramFiles \ Vim \ vim74 \ gvim.exe» "% Выбрать%" '(Добавить'% 'для включения Select), и все в порядке! Оно работает! Благодаря!! – Marslo

+0

@ Марсло вы приветствуете :) – vasili111

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