mirror of
https://github.com/neovim/neovim.git
synced 2025-11-28 21:20:45 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -254,9 +254,12 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.8.5")
|
||||
# Array-bounds testing is broken in some GCC versions before 4.8.5.
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56273
|
||||
check_c_compiler_flag(-Wno-array-bounds HAS_NO_ARRAY_BOUNDS_FLAG)
|
||||
if(HAS_NO_ARRAY_BOUNDS_FLAG)
|
||||
add_definitions(-Wno-array-bounds)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(TRAVIS_CI_BUILD "Travis/QuickBuild CI. Extra flags will be set." OFF)
|
||||
|
||||
@@ -344,6 +347,21 @@ if(FEAT_TUI)
|
||||
find_package(Unibilium REQUIRED)
|
||||
include_directories(SYSTEM ${UNIBILIUM_INCLUDE_DIRS})
|
||||
|
||||
list(APPEND CMAKE_REQUIRED_INCLUDES "${UNIBILIUM_INCLUDE_DIRS}")
|
||||
list(APPEND CMAKE_REQUIRED_LIBRARIES "${UNIBILIUM_LIBRARIES}")
|
||||
check_c_source_compiles("
|
||||
#include <unibilium.h>
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
return unibi_num_from_var(unibi_var_from_num(0));
|
||||
}
|
||||
" UNIBI_HAS_VAR_FROM)
|
||||
if(UNIBI_HAS_VAR_FROM)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNVIM_UNIBI_HAS_VAR_FROM")
|
||||
endif()
|
||||
|
||||
find_package(LibTermkey REQUIRED)
|
||||
include_directories(SYSTEM ${LIBTERMKEY_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
@@ -71,6 +71,7 @@ foreach(DF ${DOCFILES})
|
||||
endforeach()
|
||||
|
||||
add_custom_target(helptags
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory ${GENERATED_RUNTIME_DIR}/doc
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${PROJECT_SOURCE_DIR}/runtime/doc ${GENERATED_RUNTIME_DIR}/doc
|
||||
COMMAND "${PROJECT_BINARY_DIR}/bin/nvim"
|
||||
|
||||
@@ -89,7 +89,8 @@ endfunction
|
||||
|
||||
function! remote#define#AutocmdOnHost(host, method, sync, name, opts)
|
||||
let group = s:GetNextAutocmdGroup()
|
||||
let forward = '"doau '.group.' '.a:name.' ".'.'expand("<amatch>")'
|
||||
let forward = '"doau '.group.' '.a:name.' ".'
|
||||
\ . 'fnameescape(expand("<amatch>"))'
|
||||
let a:opts.group = group
|
||||
let bootstrap_def = s:GetAutocmdPrefix(a:name, a:opts)
|
||||
\ .' call remote#define#AutocmdBootstrap("'.a:host.'"'
|
||||
|
||||
@@ -1271,7 +1271,7 @@ Commands for changing the working directory can be suffixed with a bang "!"
|
||||
|
||||
*:lcd-*
|
||||
:lcd[!] - Change to the previous current directory (before the
|
||||
previous ":tcd {path}" command).
|
||||
previous ":lcd {path}" command).
|
||||
|
||||
*:pw* *:pwd* *E187*
|
||||
:pw[d] Print the current directory name.
|
||||
|
||||
@@ -3270,11 +3270,10 @@ improve screen updating rates (see |:syn-sync| for more on this). >
|
||||
The g:vimsyn_embed option allows users to select what, if any, types of
|
||||
embedded script highlighting they wish to have. >
|
||||
|
||||
g:vimsyn_embed == 0 : don't embed any scripts
|
||||
g:vimsyn_embed =~ 'P' : support embedded python
|
||||
g:vimsyn_embed == 0 : disable (don't embed any scripts)
|
||||
g:vimsyn_embed == 'lPr' : support embedded lua, python and ruby
|
||||
<
|
||||
By default, g:vimsyn_embed is a string supporting interpreters that your vim
|
||||
itself supports.
|
||||
This option is disabled by default.
|
||||
*g:vimsyn_folding*
|
||||
|
||||
Some folding is now supported with syntax/vim.vim: >
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
" #############################################################################
|
||||
" #############################################################################
|
||||
" Note: Be careful when merging the upstream version of this file.
|
||||
" Much of this is generated by scripts/genvimvim.lua (result is installed
|
||||
" to: $VIMRUNTIME/syntax/vim/generated.vim)
|
||||
" Much of this is generated by scripts/genvimvim.lua
|
||||
" (installs to $VIMRUNTIME/syntax/vim/generated.vim)
|
||||
" #############################################################################
|
||||
" #############################################################################
|
||||
|
||||
@@ -128,6 +128,13 @@ if exists("g:vimsyntax_noerror")
|
||||
let g:vimsyn_noerror= g:vimsyntax_noerror
|
||||
endif
|
||||
|
||||
" Variable options {{{2
|
||||
if exists("g:vim_maxlines")
|
||||
let s:vimsyn_maxlines= g:vim_maxlines
|
||||
else
|
||||
let s:vimsyn_maxlines= 60
|
||||
endif
|
||||
|
||||
" Numbers {{{2
|
||||
" =======
|
||||
syn match vimNumber "\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
|
||||
@@ -601,7 +608,7 @@ syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' e
|
||||
" g:vimsyn_embed =~# 'r' : embed ruby
|
||||
" g:vimsyn_embed =~# 't' : embed tcl
|
||||
if !exists("g:vimsyn_embed")
|
||||
let g:vimsyn_embed= "lpPr"
|
||||
let g:vimsyn_embed= 0
|
||||
endif
|
||||
|
||||
" [-- lua --] {{{3
|
||||
@@ -744,9 +751,10 @@ if !filereadable(s:mzschemepath)
|
||||
endif
|
||||
if g:vimsyn_embed =~# 'm' && filereadable(s:mzschemepath)
|
||||
unlet! b:current_syntax
|
||||
let iskKeep= &isk
|
||||
let s:iskKeep= &isk
|
||||
exe "syn include @vimMzSchemeScript ".s:mzschemepath
|
||||
let &isk= iskKeep
|
||||
let &isk= s:iskKeep
|
||||
unlet s:iskKeep
|
||||
VimFoldm syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript
|
||||
VimFoldm syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript
|
||||
syn cluster vimFuncBodyList add=vimMzSchemeRegion
|
||||
@@ -761,11 +769,7 @@ unlet s:mzschemepath
|
||||
if exists("g:vimsyn_minlines")
|
||||
exe "syn sync minlines=".g:vimsyn_minlines
|
||||
endif
|
||||
if exists("g:vimsyn_maxlines")
|
||||
exe "syn sync maxlines=".g:vimsyn_maxlines
|
||||
else
|
||||
syn sync maxlines=60
|
||||
endif
|
||||
exe "syn sync maxlines=".s:vimsyn_maxlines
|
||||
syn sync linecont "^\s\+\\"
|
||||
syn sync match vimAugroupSyncA groupthere NONE "\<aug\%[roup]\>\s\+[eE][nN][dD]"
|
||||
|
||||
@@ -778,7 +782,7 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimBehaveError vimError
|
||||
hi def link vimCollClassErr vimError
|
||||
hi def link vimErrSetting vimError
|
||||
hi def link vimEmbedError vimError
|
||||
hi def link vimEmbedError Normal
|
||||
hi def link vimFTError vimError
|
||||
hi def link vimFunctionError vimError
|
||||
hi def link vimFunc vimError
|
||||
|
||||
@@ -23,7 +23,7 @@ relevant help (hopefully), and pressing K over any word will try to do so too.
|
||||
Sometimes you will be required to modify text like
|
||||
this here
|
||||
Once you have done the changes correctly, the ✗ sign at the left will change
|
||||
to ✓. I imagine you can already see how neat Vim can be ;)
|
||||
to ✓. I imagine you can already see how neat Vim can be. ;)
|
||||
Other times, you'll be prompted to run a command (I'll explain this later):
|
||||
~~~ cmd
|
||||
:help <Enter>
|
||||
@@ -36,21 +36,21 @@ or press a sequence of keys
|
||||
Text within <'s and >'s (like `<Enter>`{normal}) describes a key to press instead of text
|
||||
to type.
|
||||
|
||||
Now, move to the next lesson (remember, use j).
|
||||
Now, move to the next lesson (remember, use the `j`{normal} key to scroll down).
|
||||
|
||||
## Lesson 1.1: MOVING THE CURSOR
|
||||
|
||||
** To move the cursor, press the `h`, `j`, `k`, `l` keys as indicated. **
|
||||
|
||||
↑
|
||||
k Hint: The h key is at the left and moves left.
|
||||
← h l → The l key is at the right and moves right.
|
||||
j The j key looks like a down arrow.
|
||||
k Hint: The `h`{normal} key is at the left and moves left.
|
||||
← h l → The `l`{normal} key is at the right and moves right.
|
||||
j The `j`{normal} key looks like a down arrow.
|
||||
↓
|
||||
|
||||
1. Move the cursor around the screen until you are comfortable.
|
||||
|
||||
2. Hold down the down key (j) until it repeats.
|
||||
2. Hold down the down key (`j`{normal}) until it repeats.
|
||||
Now you know how to move to the next lesson.
|
||||
|
||||
3. Using the down key, move to Lesson 1.2.
|
||||
@@ -114,15 +114,15 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
|
||||
2. To make the first line the same as the second, move the cursor on top
|
||||
of the first character AFTER where the text is to be inserted.
|
||||
|
||||
3. Press i and type in the necessary additions.
|
||||
3. Press `i`{normal} and type in the necessary additions.
|
||||
|
||||
4. As each error is fixed press <Esc> to return to Normal mode.
|
||||
4. As each error is fixed press `<Esc>`{normal} to return to Normal mode.
|
||||
Repeat steps 2 through 4 to correct the sentence.
|
||||
|
||||
There is text misng this .
|
||||
There is some text missing from this line.
|
||||
|
||||
5. When you are comfortable inserting text move to lesson 1.5.
|
||||
5. When you are comfortable inserting text move to Lesson 1.5.
|
||||
|
||||
# Lesson 1.5: TEXT EDITING: APPENDING
|
||||
|
||||
@@ -133,7 +133,7 @@ There is some text missing from this line.
|
||||
|
||||
2. Press [A](A) and type in the necessary additions.
|
||||
|
||||
3. As the text has been appended press <Esc> to return to Normal mode.
|
||||
3. As the text has been appended press `<Esc>`{normal} to return to Normal mode.
|
||||
|
||||
4. Move the cursor to the second line marked ---> and repeat
|
||||
steps 2 and 3 to correct this sentence.
|
||||
@@ -143,7 +143,7 @@ There is some text missing from this line.
|
||||
There is also some text miss
|
||||
There is also some text missing here.
|
||||
|
||||
5. When you are comfortable appending text move to lesson 1.6.
|
||||
5. When you are comfortable appending text move to Lesson 1.6.
|
||||
|
||||
# Lesson 1.6: EDITING A FILE
|
||||
|
||||
@@ -151,7 +151,7 @@ There is also some text missing here.
|
||||
|
||||
!! NOTE: Before executing any of the steps below, read this entire lesson !!
|
||||
|
||||
1. Exit this tutor as you did in lesson 1.2: :q!
|
||||
1. Exit this tutor as you did in Lesson 1.2: `:q!`{vim}
|
||||
Or, if you have access to another terminal, do the following there.
|
||||
|
||||
2. At the shell prompt type this command:
|
||||
@@ -186,14 +186,14 @@ There is also some text missing here.
|
||||
$ vim FILENAME
|
||||
~~~
|
||||
|
||||
3. To exit Vim type: <Esc> :q! <Enter> to trash all changes.
|
||||
OR type: <Esc> :wq <Enter> to save the changes.
|
||||
3. To exit Vim type: `<Esc>`{normal} `:q!`{vim} `<Enter>`{normal} to trash all changes.
|
||||
OR type: `<Esc>`{normal} `:wq`{vim} `<Enter>`{normal} to save the changes.
|
||||
|
||||
4. To delete the character at the cursor type: `x`{normal}
|
||||
|
||||
5. To insert or append text type:
|
||||
`i`{normal} type inserted text `<Esc>`{normal} insert before the cursor
|
||||
`A`{normal} type appended text `<Esc>`{normal} append after the line
|
||||
`i`{normal} insert text `<Esc>`{normal} insert before the cursor.
|
||||
`A`{normal} append text `<Esc>`{normal} append after the line.
|
||||
|
||||
NOTE: Pressing `<Esc>`{normal} will place you in Normal mode or will cancel
|
||||
an unwanted and partially completed command.
|
||||
@@ -220,7 +220,7 @@ There are a some words fun that don't belong paper in this sentence.
|
||||
|
||||
** Type `d$`{normal} to delete to the end of the line. **
|
||||
|
||||
1. Press <Esc> to make sure you are in Normal mode.
|
||||
1. Press `<Esc>`{normal} to make sure you are in Normal mode.
|
||||
|
||||
2. Move the cursor to the line below marked --->.
|
||||
|
||||
@@ -287,11 +287,11 @@ insert a count before the motion to delete more:
|
||||
3. Repeat steps 1 and 2 with a different count to delete the consecutive
|
||||
UPPER CASE words with one command
|
||||
|
||||
this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
|
||||
This ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
|
||||
|
||||
# Lesson 2.6: OPERATING ON LINES
|
||||
|
||||
** Type dd to delete a whole line. **
|
||||
** Type `dd`{normal} to delete a whole line. **
|
||||
|
||||
Due to the frequency of whole line deletion, the designers of Vi decided
|
||||
it would be easier to simply type two d's to delete a line.
|
||||
@@ -311,7 +311,7 @@ this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
|
||||
|
||||
# Lesson 2.7: THE UNDO COMMAND
|
||||
|
||||
** Press u to undo the last commands, U to fix a whole line. **
|
||||
** Press `u`{normal} to undo the last commands, `U`{normal} to fix a whole line. **
|
||||
|
||||
1. Move the cursor to the line below marked ---> and place it on the
|
||||
first error.
|
||||
@@ -319,7 +319,7 @@ this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
|
||||
3. Now type `u`{normal} to undo the last command executed.
|
||||
4. This time fix all the errors on the line using the `x`{normal} command.
|
||||
5. Now type a capital `U`{normal} to return the line to its original state.
|
||||
6. Now type `u`{normal} a few times to undo the U and preceding commands.
|
||||
6. Now type `u`{normal} a few times to undo the `U`{normal} and preceding commands.
|
||||
7. Now type `<Ctrl-r>`{normal} a few times to redo the commands (undo the undo's).
|
||||
|
||||
Fiix the errors oon thhis line and reeplace them witth undo.
|
||||
@@ -350,7 +350,7 @@ Fiix the errors oon thhis line and reeplace them witth undo.
|
||||
|
||||
# Lesson 3.1: THE PUT COMMAND
|
||||
|
||||
** Type p to put previously deleted text after the cursor. **
|
||||
** Type `p`{normal} to put previously deleted text after the cursor. **
|
||||
|
||||
1. Move the cursor to the first ---> line below.
|
||||
|
||||
@@ -388,7 +388,7 @@ NOTE: Remember that you should be learning by doing, not memorization.
|
||||
|
||||
# Lesson 3.3: THE CHANGE OPERATOR
|
||||
|
||||
** To change until the end of a word, type `ce`{normal} **
|
||||
** To change until the end of a word, type `ce`{normal}. **
|
||||
|
||||
1. Move the cursor to the first line below marked --->.
|
||||
|
||||
@@ -405,7 +405,7 @@ This line has a few words that need changing using the change operator.
|
||||
|
||||
Notice that [c](c)e deletes the word and places you in Insert mode.
|
||||
|
||||
# Lesson 3.4: MORE CHANGES USING c
|
||||
# Lesson 3.4: MORE CHANGES USING `c`{normal}
|
||||
|
||||
** The change operator is used with the same motions as delete. **
|
||||
|
||||
@@ -422,7 +422,7 @@ Notice that [c](c)e deletes the word and places you in Insert mode.
|
||||
5. Type `c$`{normal} and type the rest of the line like the second and press `<Esc>`{normal}.
|
||||
|
||||
The end of this line needs some help to make it like the second.
|
||||
The end of this line needs to be corrected using the c$ command.
|
||||
The end of this line needs to be corrected using the `c$`{normal} command.
|
||||
|
||||
NOTE: You can use the Backspace key to correct mistakes while typing.
|
||||
|
||||
@@ -436,7 +436,7 @@ NOTE: You can use the Backspace key to correct mistakes while typing.
|
||||
character you want to have there.
|
||||
|
||||
3. The [change operator](c) allows you to change from the cursor to where the
|
||||
motion takes you. eg. Type `ce`{normal} to change from the cursor to the end of
|
||||
motion takes you. Type `ce`{normal} to change from the cursor to the end of
|
||||
the word, `c$`{normal} to change to the end of a line.
|
||||
|
||||
4. The format for change is:
|
||||
@@ -457,7 +457,7 @@ NOTE: Read this entire lesson before executing any of the steps!!
|
||||
position in the file. Remember the line number for Step 3.
|
||||
|
||||
NOTE: You may see the cursor position in the lower right corner of the screen
|
||||
This happens when the ['ruler']('ruler') option is set (see :help 'ruler' )
|
||||
This happens when the ['ruler']('ruler') option is set (see `:help 'ruler'`{vim} ).
|
||||
|
||||
2. Press [G](G) to move you to the bottom of the file.
|
||||
Type [gg](gg) to move you to the start of the file.
|
||||
@@ -472,17 +472,17 @@ NOTE: You may see the cursor position in the lower right corner of the screen
|
||||
** Type `/`{normal} followed by a phrase to search for the phrase. **
|
||||
|
||||
1. In Normal mode type the `/`{normal} character. Notice that it and the cursor
|
||||
appear at the bottom of the screen as with the : command.
|
||||
appear at the bottom of the screen as with the `:`{normal} command.
|
||||
|
||||
2. Now type 'errroor' `<Enter>`{normal}. This is the word you want to search for.
|
||||
|
||||
3. To search for the same phrase again, simply type [n](n).
|
||||
To search for the same phrase in the opposite direction, type [N](N).
|
||||
|
||||
4. To search for a phrase in the backward direction, use [?](?) instead of / .
|
||||
4. To search for a phrase in the backward direction, use [?](?) instead of `/`{normal}.
|
||||
|
||||
5. To go back to where you came from press `<Ctrl-o>`{normal} (Keep Ctrl down while
|
||||
pressing the letter o). Repeat to go back further. `<Ctrl-i>`{normal} goes forward.
|
||||
5. To go back to where you came from press `<Ctrl-o>`{normal} (keep `<Ctrl>`{normal} pressed down while
|
||||
pressing the letter `o`{normal}). Repeat to go back further. `<Ctrl-i>`{normal} goes forward.
|
||||
|
||||
"errroor" is not the way to spell error; errroor is an error.
|
||||
|
||||
@@ -528,7 +528,7 @@ NOTE: This is very useful in debugging a program with unmatched parentheses!
|
||||
Adding the g [flag](:s_flags) means to substitute globally in the line, change
|
||||
all occurrences of "thee" in the line.
|
||||
|
||||
thee best time to see thee flowers is in thee spring.
|
||||
Usually thee best time to see thee flowers is in thee spring.
|
||||
|
||||
4. To change every occurrence of a character string between two lines, type
|
||||
~~~ cmd
|
||||
@@ -601,7 +601,7 @@ thee best time to see thee flowers is in thee spring.
|
||||
NOTE: It is possible to execute any external command this way, also with
|
||||
arguments.
|
||||
|
||||
NOTE: All : commands must be finished by hitting <Enter>
|
||||
NOTE: All `:`{vim} commands must be finished by hitting `<Enter>`{normal}.
|
||||
From here on we will not always mention it.
|
||||
|
||||
# Lesson 5.2: MORE ON WRITING FILES
|
||||
@@ -622,7 +622,7 @@ NOTE: All : commands must be finished by hitting <Enter>
|
||||
4. This saves the whole file (the Vim Tutor) under the name TEST.
|
||||
To verify this, type `:!ls`{vim} again to see your directory.
|
||||
|
||||
NOTE: If you were to exit Vim and start it again with vim TEST , the file
|
||||
NOTE: If you were to exit Vim and start it again with `nvim TEST`, the file
|
||||
would be an exact copy of the tutor when you saved it.
|
||||
|
||||
5. Now remove the file by typing:
|
||||
@@ -632,7 +632,7 @@ NOTE: If you were to exit Vim and start it again with vim TEST , the file
|
||||
|
||||
# Lesson 5.3: SELECTING TEXT TO WRITE
|
||||
|
||||
** To save part of the file, type `v`{normal} motion `:w FILENAME`{vim} **
|
||||
** To save part of the file, type `v`{normal} motion `:w FILENAME`{vim}. **
|
||||
|
||||
1. Move the cursor to this line.
|
||||
|
||||
@@ -665,7 +665,7 @@ NOTE: Pressing [v](v) starts [Visual selection](visual-mode). You can move
|
||||
|
||||
# Lesson 5.4: RETRIEVING AND MERGING FILES
|
||||
|
||||
** To insert the contents of a file, type `:r FILENAME`{vim} **
|
||||
** To insert the contents of a file, type `:r FILENAME`{vim}. **
|
||||
|
||||
1. Place the cursor just above this line.
|
||||
|
||||
@@ -719,7 +719,7 @@ NOTE: You can also read the output of an external command. For example,
|
||||
|
||||
3. Now type some text and press `<Esc>`{normal} to exit Insert mode.
|
||||
|
||||
After typing o the cursor is placed on the open line in Insert mode.
|
||||
After typing `o`{normal} the cursor is placed on the open line in Insert mode.
|
||||
|
||||
4. To open up a line ABOVE the cursor, simply type a [capital O](O), rather
|
||||
than a lowercase `o`{normal}. Try this on the line below.
|
||||
@@ -734,7 +734,7 @@ Open up a line above this by typing O while the cursor is on this line.
|
||||
|
||||
2. Press `e`{normal} until the cursor is on the end of "li".
|
||||
|
||||
3. Type an `a`{normal} (lowercase) to [append](a) text AFTER the cursor.
|
||||
3. Type the lowercase letter `a`{normal} to [append](a) text AFTER the cursor.
|
||||
|
||||
4. Complete the word like the line below it. Press `<Esc>`{normal} to exit Insert
|
||||
mode.
|
||||
@@ -770,7 +770,7 @@ NOTE: Replace mode is like Insert mode, but every typed character deletes an
|
||||
|
||||
# Lesson 6.4: COPY AND PASTE TEXT
|
||||
|
||||
** Use the `y`{normal} operator to copy text and `p`{normal} to paste it **
|
||||
** Use the `y`{normal} operator to copy text and `p`{normal} to paste it. **
|
||||
|
||||
1. Go to the line marked with ---> below and place the cursor after "a)".
|
||||
|
||||
@@ -780,19 +780,21 @@ NOTE: Replace mode is like Insert mode, but every typed character deletes an
|
||||
|
||||
4. Move the cursor to the end of the next line: `j$`{normal}
|
||||
|
||||
5. Type `p`{normal} to [put](put) (paste) the text. Then type: "a second"`<Esc>`{normal}.
|
||||
5. Type `p`{normal} to [put](put) (paste) the text.
|
||||
|
||||
6. Use Visual mode to select " item.", yank it with `y`{normal}, move to the end of
|
||||
6. Press `a`{normal} and then type "second". Press `<Esc>`{normal} to leave Insert mode.
|
||||
|
||||
7. Use Visual mode to select " item.", yank it with `y`{normal}, move to the end of
|
||||
the next line with `j$`{normal} and put the text there with `p`{normal}.
|
||||
|
||||
a) this is the first item.
|
||||
a) This is the first item.
|
||||
b)
|
||||
|
||||
NOTE: you can also use `y`{normal} as an operator; `yw`{normal} yanks one word.
|
||||
|
||||
# Lesson 6.5: SET OPTION
|
||||
|
||||
** Set an option so a search or substitute ignores case **
|
||||
** Set an option so a search or substitute ignores case. **
|
||||
|
||||
1. Search for 'ignore' by entering: `/ignore`
|
||||
Repeat several times by pressing `n`{normal}.
|
||||
@@ -801,7 +803,7 @@ a) this is the first item.
|
||||
~~~ cmd
|
||||
:set ic
|
||||
~~~
|
||||
3. Now search for 'ignore' again by pressing n
|
||||
3. Now search for 'ignore' again by pressing `n`{normal}.
|
||||
Notice that Ignore and IGNORE are now also found.
|
||||
|
||||
4. Set the 'hlsearch' and 'incsearch' options:
|
||||
@@ -858,7 +860,7 @@ NOTE: If you want to ignore case for just one search command, use [\c](/\c)
|
||||
|
||||
# Lesson 7.1: GETTING HELP
|
||||
|
||||
** Use the on-line help system **
|
||||
** Use the on-line help system. **
|
||||
|
||||
Vim has a comprehensive on-line help system. To get started, try one of
|
||||
these three:
|
||||
@@ -881,7 +883,7 @@ You can find help on just about any subject, by giving an argument to the
|
||||
~~~
|
||||
# Lesson 7.2: CREATE A STARTUP SCRIPT
|
||||
|
||||
** Enable Vim features **
|
||||
** Enable Vim features. **
|
||||
|
||||
Vim has many more features than Vi, but most of them are disabled by
|
||||
default. To start using more features you have to create a "vimrc" file.
|
||||
@@ -897,11 +899,11 @@ default. To start using more features you have to create a "vimrc" file.
|
||||
|
||||
The next time you start Vim it will use syntax highlighting.
|
||||
You can add all your preferred settings to this "vimrc" file.
|
||||
For more information type :help vimrc-intro
|
||||
For more information type `:help vimrc-intro`{vim}.
|
||||
|
||||
# Lesson 7.3: COMPLETION
|
||||
|
||||
** Command line completion with `<Ctrl-d>`{normal} and `<Tab>`{normal} **
|
||||
** Command line completion with `<Ctrl-d>`{normal} and `<Tab>`{normal}. **
|
||||
|
||||
1. Look what files exist in the directory: `:!ls`{vim}
|
||||
|
||||
@@ -943,14 +945,14 @@ There are many resources online to learn more about vim. Here's a bunch of them:
|
||||
|
||||
- *Learn Vim Progressively*: http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/
|
||||
- *Learning Vim in 2014*: http://benmccormick.org/learning-vim-in-2014/
|
||||
- Vimcasts: http://vimcasts.org/
|
||||
- Vim Video-Tutorials by Derek Wyatt: http://derekwyatt.org/vim/tutorials/
|
||||
- *Vimcasts*: http://vimcasts.org/
|
||||
- *Vim Video-Tutorials by Derek Wyatt*: http://derekwyatt.org/vim/tutorials/
|
||||
- *Learn Vimscript the Hard Way*: http://learnvimscriptthehardway.stevelosh.com/
|
||||
- *7 Habits of Effective Text Editing*: http://www.moolenaar.net/habits.html
|
||||
- *vim-galore*: https://github.com/mhinz/vim-galore
|
||||
|
||||
If you prefer a book, *Practical Vim* by Drew Neil is recommended often (the sequel, *Modern
|
||||
Vim*, includes material specific to nvim!).
|
||||
Vim*, includes material specific to nvim).
|
||||
|
||||
This tutorial was written by Michael C. Pierce and Robert K. Ware, Colorado
|
||||
School of Mines using ideas supplied by Charles Smith, Colorado State
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"215": "There are some words that don't belong in this sentence.",
|
||||
"231": "Somebody typed the end of this line twice.",
|
||||
"271": -1,
|
||||
"290": "this line of words is cleaned up.",
|
||||
"290": "This line of words is cleaned up.",
|
||||
"304": -1,
|
||||
"305": -1,
|
||||
"306": -1,
|
||||
@@ -32,14 +32,14 @@
|
||||
"425": "The end of this line needs to be corrected using the c$ command.",
|
||||
"487": -1,
|
||||
"506": -1,
|
||||
"531": "the best time to see the flowers is in the spring.",
|
||||
"531": "Usually the best time to see the flowers is in the spring.",
|
||||
"722": -1,
|
||||
"727": -1,
|
||||
"744": "This line will allow you to practice appending text to a line.",
|
||||
"745": "This line will allow you to practice appending text to a line.",
|
||||
"765": "Adding 123 to 456 gives you 579.",
|
||||
"766": "Adding 123 to 456 gives you 579.",
|
||||
"788": "a) this is the first item.",
|
||||
"789": " b) this is the second item."
|
||||
"790": "a) This is the first item.",
|
||||
"791": " b) This is the second item."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1668,8 +1668,8 @@ static char_u * do_one_cmd(char_u **cmdlinep,
|
||||
if (*ea.cmd == ';') {
|
||||
if (!ea.skip) {
|
||||
curwin->w_cursor.lnum = ea.line2;
|
||||
// Don't leave the cursor on an illegal line (caused by ';')
|
||||
check_cursor_lnum();
|
||||
// don't leave the cursor on an illegal line or column
|
||||
check_cursor();
|
||||
}
|
||||
} else if (*ea.cmd != ',') {
|
||||
break;
|
||||
@@ -1813,7 +1813,7 @@ static char_u * do_one_cmd(char_u **cmdlinep,
|
||||
if (text_locked() && !(ea.argt & CMDWIN)
|
||||
&& !IS_USER_CMDIDX(ea.cmdidx)) {
|
||||
// Command not allowed when editing the command line.
|
||||
errormsg = get_text_locked_msg();
|
||||
errormsg = (char_u *)_(get_text_locked_msg());
|
||||
goto doend;
|
||||
}
|
||||
/* Disallow editing another buffer when "curbuf_lock" is set.
|
||||
@@ -9378,7 +9378,7 @@ ses_arglist (
|
||||
(void)vim_FullName((char *)s, (char *)buf, MAXPATHL, FALSE);
|
||||
s = buf;
|
||||
}
|
||||
if (fputs("argadd ", fd) < 0 || ses_put_fname(fd, s, flagp) == FAIL
|
||||
if (fputs("$argadd ", fd) < 0 || ses_put_fname(fd, s, flagp) == FAIL
|
||||
|| put_eol(fd) == FAIL) {
|
||||
xfree(buf);
|
||||
return FAIL;
|
||||
|
||||
@@ -1749,7 +1749,7 @@ do_set (
|
||||
|
||||
if (flags & P_FLAGLIST) {
|
||||
// Remove flags that appear twice.
|
||||
for (s = newval; *s; s++) {
|
||||
for (s = newval; *s;) {
|
||||
// if options have P_FLAGLIST and P_ONECOMMA such as
|
||||
// 'whichwrap'
|
||||
if (flags & P_ONECOMMA) {
|
||||
@@ -1757,15 +1757,16 @@ do_set (
|
||||
&& vim_strchr(s + 2, *s) != NULL) {
|
||||
// Remove the duplicated value and the next comma.
|
||||
STRMOVE(s, s + 2);
|
||||
s -= 2;
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
if ((!(flags & P_COMMA) || *s != ',')
|
||||
&& vim_strchr(s + 1, *s) != NULL) {
|
||||
STRMOVE(s, s + 1);
|
||||
s--;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
s++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3316,6 +3316,47 @@ bt_regexec_nl (
|
||||
return (int)r;
|
||||
}
|
||||
|
||||
/// Wrapper around strchr which accounts for case-insensitive searches and
|
||||
/// non-ASCII characters.
|
||||
///
|
||||
/// This function is used a lot for simple searches, keep it fast!
|
||||
///
|
||||
/// @param s string to search
|
||||
/// @param c character to find in @a s
|
||||
///
|
||||
/// @return NULL if no match, otherwise pointer to the position in @a s
|
||||
static inline char_u *cstrchr(const char_u *const s, const int c)
|
||||
FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL
|
||||
FUNC_ATTR_ALWAYS_INLINE
|
||||
{
|
||||
if (!rex.reg_ic) {
|
||||
return vim_strchr(s, c);
|
||||
}
|
||||
|
||||
// Use folded case for UTF-8, slow! For ASCII use libc strpbrk which is
|
||||
// expected to be highly optimized.
|
||||
if (c > 0x80) {
|
||||
const int folded_c = utf_fold(c);
|
||||
for (const char_u *p = s; *p != NUL; p += utfc_ptr2len(p)) {
|
||||
if (utf_fold(utf_ptr2char(p)) == folded_c) {
|
||||
return (char_u *)p;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int cc;
|
||||
if (ASCII_ISUPPER(c)) {
|
||||
cc = TOLOWER_ASC(c);
|
||||
} else if (ASCII_ISLOWER(c)) {
|
||||
cc = TOUPPER_ASC(c);
|
||||
} else {
|
||||
return vim_strchr(s, c);
|
||||
}
|
||||
|
||||
char tofind[] = { (char)c, (char)cc, NUL };
|
||||
return (char_u *)strpbrk((const char *)s, tofind);
|
||||
}
|
||||
|
||||
/// Matches a regexp against multiple lines.
|
||||
/// "rmp->regprog" is a compiled regexp as returned by vim_regcomp().
|
||||
@@ -6320,42 +6361,6 @@ static int cstrncmp(char_u *s1, char_u *s2, int *n)
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* cstrchr: This function is used a lot for simple searches, keep it fast!
|
||||
*/
|
||||
static inline char_u *cstrchr(const char_u *const s, const int c)
|
||||
FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL
|
||||
FUNC_ATTR_ALWAYS_INLINE
|
||||
{
|
||||
if (!rex.reg_ic) {
|
||||
return vim_strchr(s, c);
|
||||
}
|
||||
|
||||
// Use folded case for UTF-8, slow! For ASCII use libc strpbrk which is
|
||||
// expected to be highly optimized.
|
||||
if (c > 0x80) {
|
||||
const int folded_c = utf_fold(c);
|
||||
for (const char_u *p = s; *p != NUL; p += utfc_ptr2len(p)) {
|
||||
if (utf_fold(utf_ptr2char(p)) == folded_c) {
|
||||
return (char_u *)p;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int cc;
|
||||
if (ASCII_ISUPPER(c)) {
|
||||
cc = TOLOWER_ASC(c);
|
||||
} else if (ASCII_ISLOWER(c)) {
|
||||
cc = TOUPPER_ASC(c);
|
||||
} else {
|
||||
return vim_strchr(s, c);
|
||||
}
|
||||
|
||||
char tofind[] = { (char)c, (char)cc, NUL };
|
||||
return (char_u *)strpbrk((const char *)s, tofind);
|
||||
}
|
||||
|
||||
/***************************************************************
|
||||
* regsub stuff *
|
||||
***************************************************************/
|
||||
|
||||
@@ -58,6 +58,7 @@ NEW_TESTS ?= \
|
||||
test_match.res \
|
||||
test_matchadd_conceal.res \
|
||||
test_matchadd_conceal_utf8.res \
|
||||
test_mksession.res \
|
||||
test_nested_function.res \
|
||||
test_normal.res \
|
||||
test_quickfix.res \
|
||||
|
||||
@@ -250,9 +250,21 @@ func Test_remove_char_in_cmdline()
|
||||
call assert_equal('"def', @:)
|
||||
endfunc
|
||||
|
||||
func Test_illegal_address()
|
||||
func Test_illegal_address1()
|
||||
new
|
||||
2;'(
|
||||
2;')
|
||||
quit
|
||||
endfunc
|
||||
|
||||
func Test_illegal_address2()
|
||||
call writefile(['c', 'x', ' x', '.', '1;y'], 'Xtest.vim')
|
||||
new
|
||||
source Xtest.vim
|
||||
" Trigger calling validate_cursor()
|
||||
diffsp Xtest.vim
|
||||
quit!
|
||||
bwipe!
|
||||
call delete('Xtest.vim')
|
||||
endfunc
|
||||
|
||||
|
||||
15
src/nvim/testdir/test_mksession.vim
Normal file
15
src/nvim/testdir/test_mksession.vim
Normal file
@@ -0,0 +1,15 @@
|
||||
" Tests for sessions
|
||||
|
||||
" Verify that arglist is stored correctly to the session file.
|
||||
func Test_mksession_arglist()
|
||||
argdel *
|
||||
next file1 file2 file3 file4
|
||||
mksession! Xtest_mks.out
|
||||
source Xtest_mks.out
|
||||
call assert_equal(['file1', 'file2', 'file3', 'file4'], argv())
|
||||
|
||||
call delete('Xtest_mks.out')
|
||||
argdel *
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
@@ -13,6 +13,12 @@ function! Test_whichwrap()
|
||||
set whichwrap+=h,l
|
||||
call assert_equal('b,s,h,l', &whichwrap)
|
||||
|
||||
set whichwrap=h,h
|
||||
call assert_equal('h', &whichwrap)
|
||||
|
||||
set whichwrap=h,h,h
|
||||
call assert_equal('h', &whichwrap)
|
||||
|
||||
set whichwrap&
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -52,6 +52,15 @@
|
||||
#define LINUXSET0C "\x1b[?0c"
|
||||
#define LINUXSET1C "\x1b[?1c"
|
||||
|
||||
#ifdef NVIM_UNIBI_HAS_VAR_FROM
|
||||
#define UNIBI_SET_NUM_VAR(var, num) \
|
||||
do { \
|
||||
(var) = unibi_var_from_num((num)); \
|
||||
} while (0)
|
||||
#else
|
||||
#define UNIBI_SET_NUM_VAR(var, num) (var).i = (num);
|
||||
#endif
|
||||
|
||||
// Per the commentary in terminfo, only a minus sign is a true suffix
|
||||
// separator.
|
||||
bool terminfo_is_term_family(const char *term, const char *family)
|
||||
@@ -391,15 +400,15 @@ static void update_attrs(UI *ui, HlAttrs attrs)
|
||||
|
||||
if (unibi_get_str(data->ut, unibi_set_attributes)) {
|
||||
if (attrs.bold || attrs.reverse || attrs.underline || attrs.undercurl) {
|
||||
data->params[0].i = 0; // standout
|
||||
data->params[1].i = attrs.underline || attrs.undercurl;
|
||||
data->params[2].i = attrs.reverse;
|
||||
data->params[3].i = 0; // blink
|
||||
data->params[4].i = 0; // dim
|
||||
data->params[5].i = attrs.bold;
|
||||
data->params[6].i = 0; // blank
|
||||
data->params[7].i = 0; // protect
|
||||
data->params[8].i = 0; // alternate character set
|
||||
UNIBI_SET_NUM_VAR(data->params[0], 0); // standout
|
||||
UNIBI_SET_NUM_VAR(data->params[1], attrs.underline || attrs.undercurl);
|
||||
UNIBI_SET_NUM_VAR(data->params[2], attrs.reverse);
|
||||
UNIBI_SET_NUM_VAR(data->params[3], 0); // blink
|
||||
UNIBI_SET_NUM_VAR(data->params[4], 0); // dim
|
||||
UNIBI_SET_NUM_VAR(data->params[5], attrs.bold);
|
||||
UNIBI_SET_NUM_VAR(data->params[6], 0); // blank
|
||||
UNIBI_SET_NUM_VAR(data->params[7], 0); // protect
|
||||
UNIBI_SET_NUM_VAR(data->params[8], 0); // alternate character set
|
||||
unibi_out(ui, unibi_set_attributes);
|
||||
} else if (!data->default_attr) {
|
||||
unibi_out(ui, unibi_exit_attribute_mode);
|
||||
@@ -423,26 +432,26 @@ static void update_attrs(UI *ui, HlAttrs attrs)
|
||||
}
|
||||
if (ui->rgb) {
|
||||
if (fg != -1) {
|
||||
data->params[0].i = (fg >> 16) & 0xff; // red
|
||||
data->params[1].i = (fg >> 8) & 0xff; // green
|
||||
data->params[2].i = fg & 0xff; // blue
|
||||
UNIBI_SET_NUM_VAR(data->params[0], (fg >> 16) & 0xff); // red
|
||||
UNIBI_SET_NUM_VAR(data->params[1], (fg >> 8) & 0xff); // green
|
||||
UNIBI_SET_NUM_VAR(data->params[2], fg & 0xff); // blue
|
||||
unibi_out_ext(ui, data->unibi_ext.set_rgb_foreground);
|
||||
}
|
||||
|
||||
if (bg != -1) {
|
||||
data->params[0].i = (bg >> 16) & 0xff; // red
|
||||
data->params[1].i = (bg >> 8) & 0xff; // green
|
||||
data->params[2].i = bg & 0xff; // blue
|
||||
UNIBI_SET_NUM_VAR(data->params[0], (bg >> 16) & 0xff); // red
|
||||
UNIBI_SET_NUM_VAR(data->params[1], (bg >> 8) & 0xff); // green
|
||||
UNIBI_SET_NUM_VAR(data->params[2], bg & 0xff); // blue
|
||||
unibi_out_ext(ui, data->unibi_ext.set_rgb_background);
|
||||
}
|
||||
} else {
|
||||
if (fg != -1) {
|
||||
data->params[0].i = fg;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], fg);
|
||||
unibi_out(ui, unibi_set_a_foreground);
|
||||
}
|
||||
|
||||
if (bg != -1) {
|
||||
data->params[0].i = bg;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], bg);
|
||||
unibi_out(ui, unibi_set_a_background);
|
||||
}
|
||||
}
|
||||
@@ -558,7 +567,7 @@ static void cursor_goto(UI *ui, int row, int col)
|
||||
unibi_out(ui, unibi_cursor_left);
|
||||
}
|
||||
} else {
|
||||
data->params[0].i = n;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], n);
|
||||
unibi_out(ui, unibi_parm_left_cursor);
|
||||
}
|
||||
ugrid_goto(grid, row, col);
|
||||
@@ -570,7 +579,7 @@ static void cursor_goto(UI *ui, int row, int col)
|
||||
unibi_out(ui, unibi_cursor_right);
|
||||
}
|
||||
} else {
|
||||
data->params[0].i = n;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], n);
|
||||
unibi_out(ui, unibi_parm_right_cursor);
|
||||
}
|
||||
ugrid_goto(grid, row, col);
|
||||
@@ -585,7 +594,7 @@ static void cursor_goto(UI *ui, int row, int col)
|
||||
unibi_out(ui, unibi_cursor_down);
|
||||
}
|
||||
} else {
|
||||
data->params[0].i = n;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], n);
|
||||
unibi_out(ui, unibi_parm_down_cursor);
|
||||
}
|
||||
ugrid_goto(grid, row, col);
|
||||
@@ -597,7 +606,7 @@ static void cursor_goto(UI *ui, int row, int col)
|
||||
unibi_out(ui, unibi_cursor_up);
|
||||
}
|
||||
} else {
|
||||
data->params[0].i = n;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], n);
|
||||
unibi_out(ui, unibi_parm_up_cursor);
|
||||
}
|
||||
ugrid_goto(grid, row, col);
|
||||
@@ -675,19 +684,19 @@ static void set_scroll_region(UI *ui)
|
||||
TUIData *data = ui->data;
|
||||
UGrid *grid = &data->grid;
|
||||
|
||||
data->params[0].i = grid->top;
|
||||
data->params[1].i = grid->bot;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], grid->top);
|
||||
UNIBI_SET_NUM_VAR(data->params[1], grid->bot);
|
||||
unibi_out(ui, unibi_change_scroll_region);
|
||||
if (grid->left != 0 || grid->right != ui->width - 1) {
|
||||
unibi_out_ext(ui, data->unibi_ext.enable_lr_margin);
|
||||
if (data->can_set_lr_margin) {
|
||||
data->params[0].i = grid->left;
|
||||
data->params[1].i = grid->right;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], grid->left);
|
||||
UNIBI_SET_NUM_VAR(data->params[1], grid->right);
|
||||
unibi_out(ui, unibi_set_lr_margin);
|
||||
} else {
|
||||
data->params[0].i = grid->left;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], grid->left);
|
||||
unibi_out(ui, unibi_set_left_margin_parm);
|
||||
data->params[0].i = grid->right;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], grid->right);
|
||||
unibi_out(ui, unibi_set_right_margin_parm);
|
||||
}
|
||||
}
|
||||
@@ -702,19 +711,19 @@ static void reset_scroll_region(UI *ui)
|
||||
if (0 <= data->unibi_ext.reset_scroll_region) {
|
||||
unibi_out_ext(ui, data->unibi_ext.reset_scroll_region);
|
||||
} else {
|
||||
data->params[0].i = 0;
|
||||
data->params[1].i = ui->height - 1;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], 0);
|
||||
UNIBI_SET_NUM_VAR(data->params[1], ui->height - 1);
|
||||
unibi_out(ui, unibi_change_scroll_region);
|
||||
}
|
||||
if (grid->left != 0 || grid->right != ui->width - 1) {
|
||||
if (data->can_set_lr_margin) {
|
||||
data->params[0].i = 0;
|
||||
data->params[1].i = ui->width - 1;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], 0);
|
||||
UNIBI_SET_NUM_VAR(data->params[1], ui->width - 1);
|
||||
unibi_out(ui, unibi_set_lr_margin);
|
||||
} else {
|
||||
data->params[0].i = 0;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], 0);
|
||||
unibi_out(ui, unibi_set_left_margin_parm);
|
||||
data->params[0].i = ui->width - 1;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], ui->width - 1);
|
||||
unibi_out(ui, unibi_set_right_margin_parm);
|
||||
}
|
||||
unibi_out_ext(ui, data->unibi_ext.disable_lr_margin);
|
||||
@@ -728,8 +737,8 @@ static void tui_resize(UI *ui, Integer width, Integer height)
|
||||
ugrid_resize(&data->grid, (int)width, (int)height);
|
||||
|
||||
if (!got_winch) { // Try to resize the terminal window.
|
||||
data->params[0].i = (int)height;
|
||||
data->params[1].i = (int)width;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], (int)height);
|
||||
UNIBI_SET_NUM_VAR(data->params[1], (int)width);
|
||||
unibi_out_ext(ui, data->unibi_ext.resize_screen);
|
||||
// DECSLPP does not reset the scroll region.
|
||||
if (data->scroll_region_is_full_screen) {
|
||||
@@ -863,7 +872,7 @@ static void tui_set_mode(UI *ui, ModeShape mode)
|
||||
int attr = syn_id2attr(c.id);
|
||||
if (attr > 0) {
|
||||
attrentry_T *aep = syn_cterm_attr2entry(attr);
|
||||
data->params[0].i = aep->rgb_bg_color;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], aep->rgb_bg_color);
|
||||
unibi_out_ext(ui, data->unibi_ext.set_cursor_color);
|
||||
}
|
||||
}
|
||||
@@ -874,7 +883,7 @@ static void tui_set_mode(UI *ui, ModeShape mode)
|
||||
case SHAPE_VER: shape = 5; break;
|
||||
default: WLOG("Unknown shape value %d", shape); break;
|
||||
}
|
||||
data->params[0].i = shape + (int)(c.blinkon == 0);
|
||||
UNIBI_SET_NUM_VAR(data->params[0], shape + (int)(c.blinkon == 0));
|
||||
unibi_out_ext(ui, data->unibi_ext.set_cursor_style);
|
||||
}
|
||||
|
||||
@@ -927,14 +936,14 @@ static void tui_scroll(UI *ui, Integer count)
|
||||
if (count == 1) {
|
||||
unibi_out(ui, unibi_delete_line);
|
||||
} else {
|
||||
data->params[0].i = (int)count;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], (int)count);
|
||||
unibi_out(ui, unibi_parm_delete_line);
|
||||
}
|
||||
} else {
|
||||
if (count == -1) {
|
||||
unibi_out(ui, unibi_insert_line);
|
||||
} else {
|
||||
data->params[0].i = -(int)count;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], -(int)count);
|
||||
unibi_out(ui, unibi_parm_insert_line);
|
||||
}
|
||||
}
|
||||
@@ -1177,8 +1186,8 @@ end:
|
||||
static void unibi_goto(UI *ui, int row, int col)
|
||||
{
|
||||
TUIData *data = ui->data;
|
||||
data->params[0].i = row;
|
||||
data->params[1].i = col;
|
||||
UNIBI_SET_NUM_VAR(data->params[0], row);
|
||||
UNIBI_SET_NUM_VAR(data->params[1], col);
|
||||
unibi_out(ui, unibi_cursor_address);
|
||||
}
|
||||
|
||||
@@ -1190,7 +1199,8 @@ static void unibi_goto(UI *ui, int row, int col)
|
||||
str = fn(data->ut, (unsigned)unibi_index); \
|
||||
} \
|
||||
if (str) { \
|
||||
unibi_var_t vars[26 + 26] = { { 0 } }; \
|
||||
unibi_var_t vars[26 + 26]; \
|
||||
memset(&vars, 0, sizeof(vars)); \
|
||||
unibi_format(vars, vars + 26, str, data->params, out, ui, NULL, NULL); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
@@ -625,10 +625,10 @@ static const int included_patches[] = {
|
||||
// 330,
|
||||
// 329,
|
||||
// 328,
|
||||
// 327,
|
||||
327,
|
||||
326,
|
||||
325,
|
||||
// 324,
|
||||
324,
|
||||
// 323,
|
||||
322,
|
||||
// 321,
|
||||
@@ -647,10 +647,10 @@ static const int included_patches[] = {
|
||||
308,
|
||||
307,
|
||||
// 306,
|
||||
// 305,
|
||||
305,
|
||||
// 304,
|
||||
// 303,
|
||||
// 302,
|
||||
// 302, NA
|
||||
// 301,
|
||||
300,
|
||||
// 299,
|
||||
@@ -658,7 +658,7 @@ static const int included_patches[] = {
|
||||
297,
|
||||
// 296,
|
||||
// 295,
|
||||
// 294,
|
||||
294,
|
||||
// 293,
|
||||
// 292,
|
||||
291,
|
||||
|
||||
Reference in New Issue
Block a user