Mercurial > vim
annotate runtime/ftplugin/j.vim @ 34219:a0a4a774117b v9.1.0058
patch 9.1.0058: Cannot map Super Keys in GTK UI
Commit: https://github.com/vim/vim/commit/92e90a1e102825aa9149262cacfc991264db05df
Author: Casey Tucker <dctucker@hotmail.com>
Date: Thu Jan 25 22:44:00 2024 +0100
patch 9.1.0058: Cannot map Super Keys in GTK UI
Problem: Cannot map Super Keys in GTK UI
(Casey Tucker)
Solution: Enable Super Key mappings in GTK using <D-Key>
(Casey Tucker)
As a developer who works in both Mac and Linux using the same keyboard,
it can be frustrating having to remember different key combinations or
having to rely on system utilities to remap keys.
This change allows `<D-z>` `<D-x>` `<D-c>` `<D-v>` etc. to be recognized
by the `map` commands, along with the `<D-S-...>` shifted variants.
```vimrc
if has('gui_gtk')
nnoremap <D-z> u
nnoremap <D-S-Z> <C-r>
vnoremap <D-x> "+d
vnoremap <D-c> "+y
cnoremap <D-v> <C-R>+
inoremap <D-v> <C-o>"+gP
nnoremap <D-v> "+P
vnoremap <D-v> "-d"+P
nnoremap <D-s> :w<CR>
inoremap <D-s> <C-o>:w<CR>
nnoremap <D-w> :q<CR>
nnoremap <D-q> :qa<CR>
nnoremap <D-t> :tabe<CR>
nnoremap <D-S-T> :vs#<CR><C-w>T
nnoremap <D-a> ggVG
vnoremap <D-a> <ESC>ggVG
inoremap <D-a> <ESC>ggVG
nnoremap <D-f> /
nnoremap <D-g> n
nnoremap <D-S-G> N
vnoremap <D-x> "+x
endif
```
closes: #12698
Signed-off-by: Casey Tucker <dctucker@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 25 Jan 2024 23:00:03 +0100 |
parents | 8ae680be2a51 |
children |
rev | line source |
---|---|
5362
ab1508486b12
Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents:
diff
changeset
|
1 " Vim filetype plugin |
ab1508486b12
Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents:
diff
changeset
|
2 " Language: J |
18639 | 3 " Maintainer: David Bürgin <dbuergin@gluet.ch> |
4 " URL: https://gitlab.com/glts/vim-j | |
29779 | 5 " Last Change: 2022-08-06 |
34134
8ae680be2a51
runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Christian Brabandt <cb@256bit.org>
parents:
29779
diff
changeset
|
6 " 2024 Jan 14 by Vim Project (browsefilter) |
5362
ab1508486b12
Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents:
diff
changeset
|
7 |
5734 | 8 if exists('b:did_ftplugin') |
5362
ab1508486b12
Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents:
diff
changeset
|
9 finish |
ab1508486b12
Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents:
diff
changeset
|
10 endif |
ab1508486b12
Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents:
diff
changeset
|
11 let b:did_ftplugin = 1 |
ab1508486b12
Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents:
diff
changeset
|
12 |
5815 | 13 let s:save_cpo = &cpo |
14 set cpo&vim | |
15 | |
7176
30042ddff503
commit https://github.com/vim/vim/commit/60cce2fb736c8ff6fdb9603f502d3c15f1f7a25d
Christian Brabandt <cb@256bit.org>
parents:
6741
diff
changeset
|
16 setlocal iskeyword=48-57,A-Z,a-z,_ |
5362
ab1508486b12
Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents:
diff
changeset
|
17 setlocal comments=:NB. |
ab1508486b12
Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents:
diff
changeset
|
18 setlocal commentstring=NB.\ %s |
5425 | 19 setlocal formatoptions-=t |
20 setlocal matchpairs=(:) | |
7176
30042ddff503
commit https://github.com/vim/vim/commit/60cce2fb736c8ff6fdb9603f502d3c15f1f7a25d
Christian Brabandt <cb@256bit.org>
parents:
6741
diff
changeset
|
21 setlocal path-=/usr/include |
5362
ab1508486b12
Update runtime files. Add support for J.
Bram Moolenaar <bram@vim.org>
parents:
diff
changeset
|
22 |
7176
30042ddff503
commit https://github.com/vim/vim/commit/60cce2fb736c8ff6fdb9603f502d3c15f1f7a25d
Christian Brabandt <cb@256bit.org>
parents:
6741
diff
changeset
|
23 " Includes. To make the shorthand form "require 'web/cgi'" work, double the |
30042ddff503
commit https://github.com/vim/vim/commit/60cce2fb736c8ff6fdb9603f502d3c15f1f7a25d
Christian Brabandt <cb@256bit.org>
parents:
6741
diff
changeset
|
24 " last path component. Also strip off leading folder names like "~addons/". |
30042ddff503
commit https://github.com/vim/vim/commit/60cce2fb736c8ff6fdb9603f502d3c15f1f7a25d
Christian Brabandt <cb@256bit.org>
parents:
6741
diff
changeset
|
25 setlocal include=\\v^\\s*(load\|require)\\s*'\\zs\\f+\\ze' |
30042ddff503
commit https://github.com/vim/vim/commit/60cce2fb736c8ff6fdb9603f502d3c15f1f7a25d
Christian Brabandt <cb@256bit.org>
parents:
6741
diff
changeset
|
26 setlocal includeexpr=substitute(substitute(tr(v:fname,'\\','/'),'\\v^[^~][^/.]*(/[^/.]+)$','&\\1',''),'\\v^\\~[^/]+/','','') |
30042ddff503
commit https://github.com/vim/vim/commit/60cce2fb736c8ff6fdb9603f502d3c15f1f7a25d
Christian Brabandt <cb@256bit.org>
parents:
6741
diff
changeset
|
27 setlocal suffixesadd=.ijs |
30042ddff503
commit https://github.com/vim/vim/commit/60cce2fb736c8ff6fdb9603f502d3c15f1f7a25d
Christian Brabandt <cb@256bit.org>
parents:
6741
diff
changeset
|
28 |
18639 | 29 let b:undo_ftplugin = 'setlocal suffixesadd< includeexpr< include< path< matchpairs< formatoptions< commentstring< comments< iskeyword<' |
5815 | 30 |
31 " Section movement with ]] ][ [[ []. The start/end patterns below are amended | |
32 " inside the function in order to avoid matching on the current cursor line. | |
29779 | 33 if !exists('no_plugin_maps') && !exists('no_j_maps') |
34 let s:sectionstart = '\%(\s*Note\|.\{-}\<\%([0-4]\|13\|noun\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(:\s*0\|def\s\+0\|define\)\)\>.*' | |
35 let s:sectionend = '\s*)\s*' | |
5815 | 36 |
29779 | 37 function! s:SearchSection(end, backwards, visualmode) abort |
38 if a:visualmode !=# '' | |
39 normal! gv | |
40 endif | |
41 let l:flags = a:backwards ? 'bsW' : 'sW' | |
42 if a:end | |
43 call search('^' . s:sectionend . (a:backwards ? '\n\_.\{-}\%#' : '$'), l:flags) | |
44 else | |
45 call search('^' . s:sectionstart . (a:backwards ? '\n\_.\{-}\%#' : '$'), l:flags) | |
46 endif | |
47 endfunction | |
5815 | 48 |
29779 | 49 noremap <buffer> <silent> ]] :<C-U>call <SID>SearchSection(0, 0, '')<CR> |
50 xnoremap <buffer> <silent> ]] :<C-U>call <SID>SearchSection(0, 0, visualmode())<CR> | |
51 sunmap <buffer> ]] | |
52 noremap <buffer> <silent> ][ :<C-U>call <SID>SearchSection(1, 0, '')<CR> | |
53 xnoremap <buffer> <silent> ][ :<C-U>call <SID>SearchSection(1, 0, visualmode())<CR> | |
54 sunmap <buffer> ][ | |
55 noremap <buffer> <silent> [[ :<C-U>call <SID>SearchSection(0, 1, '')<CR> | |
56 xnoremap <buffer> <silent> [[ :<C-U>call <SID>SearchSection(0, 1, visualmode())<CR> | |
57 sunmap <buffer> [[ | |
58 noremap <buffer> <silent> [] :<C-U>call <SID>SearchSection(1, 1, '')<CR> | |
59 xnoremap <buffer> <silent> [] :<C-U>call <SID>SearchSection(1, 1, visualmode())<CR> | |
60 sunmap <buffer> [] | |
5815 | 61 |
29779 | 62 let b:undo_ftplugin .= ' | silent! execute "unmap <buffer> ]]"' |
63 \ . ' | silent! execute "unmap <buffer> ]["' | |
64 \ . ' | silent! execute "unmap <buffer> [["' | |
65 \ . ' | silent! execute "unmap <buffer> []"' | |
66 endif | |
5815 | 67 |
29779 | 68 " Browse dialog filter on Windows and GTK (see ":help browsefilter") |
69 if (has('gui_win32') || has('gui_gtk')) && !exists('b:browsefilter') | |
5815 | 70 let b:browsefilter = "J Script Files (*.ijs)\t*.ijs\n" |
34134
8ae680be2a51
runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Christian Brabandt <cb@256bit.org>
parents:
29779
diff
changeset
|
71 if has("win32") |
8ae680be2a51
runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Christian Brabandt <cb@256bit.org>
parents:
29779
diff
changeset
|
72 let b:browsefilter .= "All Files (*.*)\t*\n" |
8ae680be2a51
runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Christian Brabandt <cb@256bit.org>
parents:
29779
diff
changeset
|
73 else |
8ae680be2a51
runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Christian Brabandt <cb@256bit.org>
parents:
29779
diff
changeset
|
74 let b:browsefilter .= "All Files (*)\t*\n" |
8ae680be2a51
runtime(ftplugin): Use "*" browsefilter pattern to match "All Files"
Christian Brabandt <cb@256bit.org>
parents:
29779
diff
changeset
|
75 endif |
5815 | 76 let b:undo_ftplugin .= ' | unlet! b:browsefilter' |
77 endif | |
78 | |
79 " Enhanced "%" matching (see ":help matchit") | |
80 if exists('loaded_matchit') && !exists('b:match_words') | |
81 let b:match_ignorecase = 0 | |
6505 | 82 let b:match_words = '^\%(\s*Note\|.\{-}\<\%([0-4]\|13\|noun\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(\:\s*0\|def\s\+0\|define\)\)\>:^\s*\:\s*$:^\s*)\s*$' |
5815 | 83 \ . ',\<\%(for\%(_\a\k*\)\=\|if\|select\|try\|whil\%(e\|st\)\)\.:\<\%(case\|catch[dt]\=\|else\%(if\)\=\|fcase\)\.:\<end\.' |
84 let b:undo_ftplugin .= ' | unlet! b:match_ignorecase b:match_words' | |
85 endif | |
86 | |
87 let &cpo = s:save_cpo | |
88 unlet s:save_cpo |