Neovim을 통한 파이 메뉴 구현
파이 메뉴?
항목을 원형으로 배열한 메뉴.
각도에서 항목을 선택할 수 있습니다.
세상에 존재하는 파이 메뉴의 행동을 확인하고 싶을 때
3DCG 소프트웨어의 Blender에는 add-on으로 존재하므로 참고할 수 있습니다.
또 참고https://github.com/payne911/PieMenu했다.
프레젠테이션 페이지가 있고 게임에서 사용하는 예가 있는gif가 있어서 즐거웠어요.
모티프
가볍게 듀엣할 때 건반 위에 두 손을 얹는 게 귀찮아요.
나는 개인적으로 마우스만 들고 있는 장면을 비교적 좋아한다.
그러나 네오비엠은 컨텍스트 메뉴가 없어 마우스만으로는 완성할 수 없다.
(당연히 키보드로 조작된 편집기)
그럼 메뉴 표시줄 기능
:help menus
을 사용하는 게 어때요?GUI에 의존할 뿐 아니라 특별히 설치된 Neovim의 GUI도 볼 수 없습니다.
현재 상황neovim-qt도 없다.https://github.com/equalsraf/neovim-qt/issues/395
워낙 작은 요소를 노려 클릭을 잘 못하기 때문에 마음대로 선택할 수 있는 UI를 원한다.
파이 메뉴라면 메뉴에 분배되는 각도 범위 내에서 클릭할 수 있어 마음대로 선택할 수 있다.
또한 이전에 제작된 제스처 플러그인gesture.nvim과도 잘 어울린다
마우스 제스처의 동작으로 파이 메뉴를 사용하면 마우스에만 있는 행동폭을 쉽게 늘릴 수 있다.
이루어지다
Neovim 고유의 기술은 거의 없습니다.
다만 편집기 영역에 포함된 범위의 원주는 메뉴를 잘 설정하기가 어렵다.
그러나 칸을 원형으로 만들기 위해서는 칸의 종횡비가 2:1인 것을 고려할 필요가 있다.
그다음에 이음매 얘기로.
piemenu.nvim에 메뉴를 등록해서 수락한 이름을 표시하기 위해서입니다.
(아래 예제에서
example
require("piemenu").register("example", {
menus = {
{
text = "📚 help",
action = function()
vim.cmd("help " .. vim.fn.expand("<cword>"))
end,
},
},
})
require("piemenu").start("example")
gesture.nvim에서 전역 또는 버퍼 로컬 자세를 등록할 수 있습니다piemenu.nvim이면 자유로운 이름 공간으로 등록하면 확장성이 높습니다.
예를 들어 파일 형식에서 사용하고자 하는 메뉴가 반드시 하나만 있는 것은 아니다.
감상
Reference
이 문제에 관하여(Neovim을 통한 파이 메뉴 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/notomo/articles/neovim-pie-menu-plugin텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)