Giter Site home page Giter Site logo

Comments (8)

lyokha avatar lyokha commented on June 25, 2024 1

Сегодня, решив продолжить разбираться, установил совершенно чистую версию init.lua, где только lazy и ваш плагин, случайно это обнаружил - по ESC все нормально, по Ctrl-C не работает. Не знаю, насколько это можно считать багом и можно ли пофиксить, но все-таки было бы хорошо, чтоб работало и по этой клавише. В любом случае, если посчитаете нужным, закрывайте issue.

Если проблема в отсутствии маппинга на Esc, то это не баг. Багом это будет если вы вернете маппинг, а плагин не будет работать. Но по идее все будет хорошо, так как действия плагина привязаны не к сочетаниям клавиш, а к событиям типа InsertLeave / InsertEnter.

Пользуясь случаем, хочу вам сказать огромное спасибо за ваш плагин, которым пользуюсь уже не менее десятка лет. Благодарю от души!

И вам спасибо за оценку!

PS. Хм... Кстати, решил проверить про config и init - с config не работает, только init подавай. Причем с config, :echo g:XkbSwitchLib показывает правильный путь к библиотеке, а g:loaded_XkbSwitch - 1, но не работает и :EnableXkbSwitch не дает эффекта. Странно, может lazy не так уж и "невиновата".

То что вы описываете работает правильно. Из того что я увидел в lazy.nvim, последовательность загрузки сейчас такова: init() -> source plugins (загрузка в т.ч. плагина vim-kbswitch) -> config(). В плагине предусмотрено, что установка let g:XkbSwitchEnabled = 1 должна проходить до загрузки плагина. Поэтому с config() это не работает.

В любом случае, я пока на neovim, наверное, переходить в ближайшие дни не буду. Пока поэкспериментирую, когда время будет.

Я сам на neovim уже два года и только положительные впечатления. Не из-за lua (мне все равно какой там язык), а в основном из-за встроенного LSP и tree-sitter, а также из-за огромного выбора новых плагинов. Конфиг адаптировал из старого vim, поэтому он на vim script и находится в файле init.vim. Вот он: https://github.com/lyokha/dotfiles/blob/master/.config/nvim/init.vim. Возможно вам будет интересно, но он большой и на lua там только некоторые настройки.

from vim-xkbswitch.

lyokha avatar lyokha commented on June 25, 2024 1

Вот что я обнаружил в :help i_CTRL-C:

CTRL-C Quit insert mode, go back to Normal mode. Do not check for
abbreviations. Does not trigger the |InsertLeave| autocommand
event.

Событие InsertLeave не триггерится, а значит действительно, vim-xkbswitch не сработает и нужен маппинг на Esc.

from vim-xkbswitch.

lyokha avatar lyokha commented on June 25, 2024

А что говорит :echo g:XkbSwitchLib после установки в lazy?

from vim-xkbswitch.

lyokha avatar lyokha commented on June 25, 2024

А так же интересно, что скажет :echo g:loaded_XkbSwitch.

from vim-xkbswitch.

lyokha avatar lyokha commented on June 25, 2024

См. здесь: https://github.com/folke/lazy.nvim/blob/5af331ea65418dc9361769891921fdee4bcc837a/lua/lazy/core/loader.lua#L87

Lazy сначала сорсит плагин, а только затем выполняется ваш init в котором выполняется let g:XkbSwitchEnabled = 1, нужно как-то сделать, чтобы было наоборот, то есть функция init здесь не подходит.

from vim-xkbswitch.

lyokha avatar lyokha commented on June 25, 2024

Похоже что в вашем конфиге надо просто заменить init = ... на config = ....

from vim-xkbswitch.

lyokha avatar lyokha commented on June 25, 2024

А нет, видимо я неправ и init() наоборот, вызывается до загрузки плагина, а config() после.

init() is always called during startup, before even loading start plugins. That's not supposed to contain code that depends on any plugin.

(отсюда: folke/lazy.nvim#283).

Тогда возвращаюсь к вопросу что говорят :echo g:XkbSwitchLib и g:loaded_XkbSwitch?

from vim-xkbswitch.

appomsk avatar appomsk commented on June 25, 2024

Доброго дня.

В общем, покопавшись с утра, обнаружил, что (как обычно) во всем виноват я. До маппингов я еще не дошел, а уже багрепорты строчить начал :). Я никогда ESC не использую для выхода в нормальный режим, привык Ctrl-C, который у меня в моем старом .vimrc замаппен в insert mode на ЕSC (наверное есть какие-то минусы в этом, но вроде нормально).

Сегодня, решив продолжить разбираться, установил совершенно чистую версию init.lua, где только lazy и ваш плагин, случайно это обнаружил - по ESC все нормально, по Ctrl-C не работает. Не знаю, насколько это можно считать багом и можно ли пофиксить, но все-таки было бы хорошо, чтоб работало и по этой клавише. В любом случае, если посчитаете нужным, закрывайте issue.

Понятно, что lazy тут не при чем. Прошу прощения, что ввел в заблуждение (c vim.plug у меня была другая экспериментальная папка конфига для neovim, где маппинги присутствовали).

По init - да, это была уже перестраховка, lazy = false должно было быть, вроде, достаточно.

Пользуясь случаем, хочу вам сказать огромное спасибо за ваш плагин, которым пользуюсь уже не менее десятка лет. Благодарю от души!

PS. Хм... Кстати, решил проверить про config и init - с config не работает, только init подавай. Причем с config, :echo g:XkbSwitchLib показывает правильный путь к библиотеке, а g:loaded_XkbSwitch - 1, но не работает и :EnableXkbSwitch не дает эффекта. Странно, может lazy не так уж и "невиновата". В любом случае, я пока на neovim, наверное, переходить в ближайшие дни не буду. Пока поэкспериментирую, когда время будет.

На всякий случай - вот мой чистый сегодняшний ~/.config/nvim/init.lua:

local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
    vim.fn.system({
        "git",
        "clone",
        "--filter=blob:none",
        "https://github.com/folke/lazy.nvim.git",
        "--branch=stable", -- latest stable release
        lazypath,
    })
end
vim.opt.rtp:prepend(lazypath)

require("lazy").setup({
    {
        'https://github.com/lyokha/vim-xkbswitch',
        lazy = false,
       -- init = function()
        config = function()
            vim.g.XkbSwitchEnabled = 1
        end,
    },
})

from vim-xkbswitch.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.