mirror of
https://github.com/neovim/neovim.git
synced 2024-09-17 20:58:20 -04:00
vim-patch:0c0734d527a1
Update runtime files
0c0734d527
Omit rand(), srand() documentation.
Patch v8.1.2342 is not ported yet.
This commit is contained in:
parent
d1231d4f8e
commit
348f72524d
@ -944,7 +944,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
(mostly used in |Normal-mode| or |Cmdline-mode|).
|
||||
esc hitting <Esc> in |Normal-mode|.
|
||||
ex In |Visual-mode|, hitting |Q| results in an error.
|
||||
hangul Error occurred when using hangul input.
|
||||
hangul Ignored.
|
||||
insertmode Pressing <Esc> in 'insertmode'.
|
||||
lang Calling the beep module for Lua/Mzscheme/TCL.
|
||||
mess No output available for |g<|.
|
||||
@ -5288,12 +5288,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
of this option).
|
||||
The default is ">". For Unix, if the 'shell' option is "csh" or
|
||||
"tcsh" during initializations, the default becomes ">&". If the
|
||||
'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh",
|
||||
"zsh-beta","bash" or "fish", the default becomes ">%s 2>&1". This
|
||||
means that stderr is also included. For Win32, the Unix checks are
|
||||
done and additionally "cmd" is checked for, which makes the default
|
||||
">%s 2>&1". Also, the same names with ".exe" appended are checked
|
||||
for.
|
||||
'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh", "zsh-beta",
|
||||
"bash" or "fish", the default becomes ">%s 2>&1". This means that
|
||||
stderr is also included. For Win32, the Unix checks are done and
|
||||
additionally "cmd" is checked for, which makes the default ">%s 2>&1".
|
||||
Also, the same names with ".exe" appended are checked for.
|
||||
The initialization of this option is done after reading the vimrc
|
||||
and the other initializations, so that when the 'shell' option is set
|
||||
there, the 'shellredir' option changes automatically unless it was
|
||||
@ -5898,7 +5897,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
a S Argument list status as in default title. ({current} of {max})
|
||||
Empty if the argument file count is zero or one.
|
||||
{ NF Evaluate expression between '%{' and '}' and substitute result.
|
||||
Note that there is no '%' before the closing '}'.
|
||||
Note that there is no '%' before the closing '}'. The
|
||||
expression cannot contain a '}' character, call a function to
|
||||
work around that. See |stl-%{| below.
|
||||
( - Start of item group. Can be used for setting the width and
|
||||
alignment of a section. Must be followed by %) somewhere.
|
||||
) - End of item group. No width fields allowed.
|
||||
@ -5961,13 +5962,13 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
:set statusline=...%(\ [%M%R%H]%)...
|
||||
< Beware that an expression is evaluated each and every time the status
|
||||
line is displayed.
|
||||
*g:actual_curbuf* *g:actual_curwin*
|
||||
The current buffer and current window will be set temporarily to that
|
||||
of the window (and buffer) whose statusline is currently being drawn.
|
||||
The expression will evaluate in this context. The variable
|
||||
"g:actual_curbuf" is set to the `bufnr()` number of the real current
|
||||
buffer and "g:actual_curwin" to the |window-ID| of the real current
|
||||
window. These values are strings.
|
||||
*stl-%{* *g:actual_curbuf* *g:actual_curwin*
|
||||
While evaluationg %{} the current buffer and current window will be
|
||||
set temporarily to that of the window (and buffer) whose statusline is
|
||||
currently being drawn. The expression will evaluate in this context.
|
||||
The variable "g:actual_curbuf" is set to the `bufnr()` number of the
|
||||
real current buffer and "g:actual_curwin" to the |window-ID| of the
|
||||
real current window. These values are strings.
|
||||
|
||||
The 'statusline' option will be evaluated in the |sandbox| if set from
|
||||
a modeline, see |sandbox-option|.
|
||||
@ -7050,6 +7051,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
fail (and make sure not to exit Vim until the write was successful).
|
||||
See |backup-table| for another explanation.
|
||||
When the 'backupskip' pattern matches, a backup is not made anyway.
|
||||
Depending on 'backupcopy' the backup is a new file or the original
|
||||
file renamed (and a new file is written).
|
||||
|
||||
*'writedelay'* *'wd'*
|
||||
'writedelay' 'wd' number (default 0)
|
||||
|
@ -366,7 +366,7 @@ sign_define({list})
|
||||
|
||||
The one argument {list} can be used to define a list of signs.
|
||||
Each list item is a dictionary with the above items in {dict}
|
||||
and a 'name' item for the sign name.
|
||||
and a "name" item for the sign name.
|
||||
|
||||
Returns 0 on success and -1 on failure. When the one argument
|
||||
{list} is used, then returns a List of values one for each
|
||||
|
@ -2739,10 +2739,10 @@ To set a user-defined list of code block syntax highlighting: >
|
||||
To assign multiple code block types to a single syntax, define
|
||||
`rst_syntax_code_list` as a mapping: >
|
||||
let rst_syntax_code_list = {
|
||||
\ 'cpp' = ['cpp', 'c++'],
|
||||
\ 'bash' = ['bash', 'sh'],
|
||||
\ 'cpp': ['cpp', 'c++'],
|
||||
\ 'bash': ['bash', 'sh'],
|
||||
...
|
||||
}
|
||||
\ }
|
||||
|
||||
To use color highlighting for emphasis text: >
|
||||
let rst_use_emphasis_colors = 1
|
||||
|
@ -41,11 +41,11 @@ the commands and options used for it. Use these two commands:
|
||||
Press CTRL-O to jump back (repeat to go further back).
|
||||
|
||||
Many links are in vertical bars, like this: |bars|. The bars themselves may
|
||||
be hidden or invisible, see below. An option name, like 'number', a command
|
||||
be hidden or invisible; see below. An option name, like 'number', a command
|
||||
in double quotes like ":write" and any other word can also be used as a link.
|
||||
Try it out: Move the cursor to CTRL-] and press CTRL-] on it.
|
||||
|
||||
Other subjects can be found with the ":help" command, see |help.txt|.
|
||||
Other subjects can be found with the ":help" command; see |help.txt|.
|
||||
|
||||
The bars and stars are usually hidden with the |conceal| feature. They also
|
||||
use |hl-Ignore|, using the same color for the text as the background. You can
|
||||
@ -69,7 +69,7 @@ For more info see |vimrc|.
|
||||
*01.3* Using the Vim tutor *tutor* *vimtutor*
|
||||
|
||||
Instead of reading the text (boring!) you can use :Tutor to learn your first
|
||||
Vim commands. This is a 30 minute tutorial that teaches the most basic Vim
|
||||
Vim commands. This is a 30-minute tutorial that teaches the most basic Vim
|
||||
functionality hands-on.
|
||||
|
||||
To start the tutorial, execute >
|
||||
|
@ -253,11 +253,11 @@ restores the character.
|
||||
|
||||
g intelligent turtle ~
|
||||
|
||||
The next u command restores the next-to-last character deleted:
|
||||
The next "u" command restores the next-to-last character deleted:
|
||||
|
||||
ng intelligent turtle ~
|
||||
|
||||
The next u command gives you the u, and so on:
|
||||
The next "u" command gives you the u, and so on:
|
||||
|
||||
ung intelligent turtle ~
|
||||
oung intelligent turtle ~
|
||||
@ -364,7 +364,7 @@ To exit, use the "ZZ" command. This command writes the file and exits.
|
||||
Unlike many other editors, Vim does not automatically make a backup
|
||||
file. If you type "ZZ", your changes are committed and there's no
|
||||
turning back. You can configure the Vim editor to produce backup
|
||||
files, see |07.4|.
|
||||
files; see |07.4|.
|
||||
|
||||
|
||||
DISCARDING CHANGES
|
||||
@ -387,7 +387,7 @@ message and refuse to exit:
|
||||
E37: No write since last change (use ! to override) ~
|
||||
|
||||
By specifying the override, you are in effect telling Vim, "I know that what
|
||||
I'm doing looks stupid, but I'm a big boy and really want to do this."
|
||||
I'm doing looks stupid, but I really want to do this."
|
||||
|
||||
If you want to continue editing with Vim: The ":e!" command reloads the
|
||||
original version of the file.
|
||||
@ -540,7 +540,7 @@ Summary: *help-summary* >
|
||||
command argument %: >
|
||||
:help c_%
|
||||
|
||||
8) Ex-commands always start with ":", so to go to the :s command help: >
|
||||
8) Ex-commands always start with ":", so to go to the ":s" command help: >
|
||||
:help :s
|
||||
|
||||
9) Commands specifically for debugging start with ">". To go to the help
|
||||
@ -550,22 +550,23 @@ Summary: *help-summary* >
|
||||
10) Key combinations. They usually start with a single letter indicating
|
||||
the mode for which they can be used. E.g.: >
|
||||
:help i_CTRL-X
|
||||
< takes you to the family of Ctrl-X commands for insert mode which can be
|
||||
used to auto complete different things. Note, that certain keys will
|
||||
< takes you to the family of CTRL-X commands for insert mode which can be
|
||||
used to auto-complete different things. Note, that certain keys will
|
||||
always be written the same, e.g. Control will always be CTRL.
|
||||
For normal mode commands there is no prefix and the topic is available at
|
||||
:h CTRL-<Letter>. E.g. >
|
||||
:help CTRL-W
|
||||
< In contrast >
|
||||
:help c_CTRL-R
|
||||
< will describe what the Ctrl-R does when entering commands in the Command
|
||||
< will describe what the CTRL-R does when entering commands in the Command
|
||||
line and >
|
||||
:help v_Ctrl-A
|
||||
:help v_CTRL-A
|
||||
< talks about incrementing numbers in visual mode and >
|
||||
:help g_CTRL-A
|
||||
< talks about the g<C-A> command (e.g. you have to press "g" then <Ctrl-A>).
|
||||
Here the "g" stand for the normal command "g" which always expects a second
|
||||
key before doing something similar to the commands starting with "z"
|
||||
< talks about the "g<C-A>" command (e.g. you have to press "g" then
|
||||
<CTRL-A>). Here the "g" stand for the normal command "g" which always
|
||||
expects a second key before doing something similar to the commands
|
||||
starting with "z"
|
||||
|
||||
11) Regexp items always start with /. So to get help for the "\+" quantifier
|
||||
in Vim regexes: >
|
||||
@ -636,15 +637,16 @@ Summary: *help-summary* >
|
||||
< Also if you want to access a certain chapter in the help, the chapter
|
||||
number can be accessed directly like this: >
|
||||
:help 10.1
|
||||
< goes to chapter 10.1 in |usr_10.txt| and talks about recording macros.
|
||||
< which goes to chapter 10.1 in |usr_10.txt| and talks about recording
|
||||
macros.
|
||||
|
||||
19) Highlighting groups. Always start with hl-groupname. E.g. >
|
||||
:help hl-WarningMsg
|
||||
< talks about the WarningMsg highlighting group.
|
||||
|
||||
20) Syntax highlighting is namespaced to :syn-topic e.g. >
|
||||
20) Syntax highlighting is namespaced to :syn-topic. E.g. >
|
||||
:help :syn-conceal
|
||||
< talks about the conceal argument for the :syn command.
|
||||
< talks about the conceal argument for the ":syn" command.
|
||||
|
||||
21) Quickfix commands usually start with :c while location list commands
|
||||
usually start with :l
|
||||
@ -677,7 +679,7 @@ Summary: *help-summary* >
|
||||
< takes you exactly to the description of the swap error message and >
|
||||
:help W10
|
||||
< talks about the warning "Changing a readonly file".
|
||||
Sometimes however, those error codes are not described, but rather are
|
||||
Sometimes, however, those error codes are not described, but rather are
|
||||
listed at the Vim command that usually causes this. So: >
|
||||
:help E128
|
||||
< takes you to the |:function| command
|
||||
|
@ -81,8 +81,8 @@ The "$" command moves the cursor to the end of a line. If your keyboard has
|
||||
an <End> key it will do the same thing.
|
||||
|
||||
The "^" command moves to the first non-blank character of the line. The "0"
|
||||
command (zero) moves to the very first character of the line. The <Home> key
|
||||
does the same thing. In a picture:
|
||||
command (zero) moves to the very first character of the line, and the <Home>
|
||||
key does the same thing. In a picture:
|
||||
|
||||
^
|
||||
<------------
|
||||
@ -222,7 +222,8 @@ you can see? This figure shows the three commands you can use:
|
||||
L --> | text sample text |
|
||||
+---------------------------+
|
||||
|
||||
Hints: "H" stands for Home, "M" for Middle and "L" for Last.
|
||||
Hints: "H" stands for Home, "M" for Middle and "L" for Last. Alternatively,
|
||||
"H" for high, "M" for Middle and "L" for low.
|
||||
|
||||
==============================================================================
|
||||
*03.6* Telling where you are
|
||||
@ -299,22 +300,22 @@ To scroll one line at a time use CTRL-E (scroll up) and CTRL-Y (scroll down).
|
||||
Think of CTRL-E to give you one line Extra. (If you use MS-Windows compatible
|
||||
key mappings CTRL-Y will redo a change instead of scroll.)
|
||||
|
||||
To scroll forward by a whole screen (except for two lines) use CTRL-F. The
|
||||
other way is backward, CTRL-B is the command to use. Fortunately CTRL-F is
|
||||
Forward and CTRL-B is Backward, that's easy to remember.
|
||||
To scroll forward by a whole screen (except for two lines) use CTRL-F. To
|
||||
scroll backwards, use CTRL-B. These should be easy to remember: F for
|
||||
Forwards and B for Backwards.
|
||||
|
||||
A common issue is that after moving down many lines with "j" your cursor is at
|
||||
the bottom of the screen. You would like to see the context of the line with
|
||||
the cursor. That's done with the "zz" command.
|
||||
|
||||
+------------------+ +------------------+
|
||||
| some text | | some text |
|
||||
| some text | | some text |
|
||||
| some text | | some text |
|
||||
| some text | zz --> | line with cursor |
|
||||
| some text | | some text |
|
||||
| some text | | some text |
|
||||
| line with cursor | | some text |
|
||||
| earlier text | | earlier text |
|
||||
| earlier text | | earlier text |
|
||||
| earlier text | | earlier text |
|
||||
| earlier text | zz --> | line with cursor |
|
||||
| earlier text | | later text |
|
||||
| earlier text | | later text |
|
||||
| line with cursor | | later text |
|
||||
+------------------+ +------------------+
|
||||
|
||||
The "zt" command puts the cursor line at the top, "zb" at the bottom. There
|
||||
@ -354,7 +355,7 @@ The "?" command works like "/" but searches backwards: >
|
||||
|
||||
The "N" command repeats the last search the opposite direction. Thus using
|
||||
"N" after a "/" command searches backwards, using "N" after "?" searches
|
||||
forward.
|
||||
forwards.
|
||||
|
||||
|
||||
IGNORING CASE
|
||||
@ -458,8 +459,8 @@ essential ones:
|
||||
:set nowrapscan
|
||||
|
||||
This stops the search at the end of the file. Or, when you are searching
|
||||
backwards, at the start of the file. The 'wrapscan' option is on by default,
|
||||
thus searching wraps around the end of the file.
|
||||
backwards, it stops the search at the start of the file. The 'wrapscan'
|
||||
option is on by default, thus searching wraps around the end of the file.
|
||||
>
|
||||
:set noincsearch
|
||||
|
||||
@ -481,7 +482,8 @@ Vim. Example: >
|
||||
Go:set hlsearch<Esc>
|
||||
|
||||
"G" moves to the end of the file. "o" starts a new line, where you type the
|
||||
":set" command. You end insert mode with <Esc>. Then write the file: >
|
||||
":set" command. You end insert mode with <Esc>. Then write and close the
|
||||
file: >
|
||||
|
||||
ZZ
|
||||
|
||||
@ -495,8 +497,8 @@ Regular expressions are an extremely powerful and compact way to specify a
|
||||
search pattern. Unfortunately, this power comes at a price, because regular
|
||||
expressions are a bit tricky to specify.
|
||||
In this section we mention only a few essential ones. More about search
|
||||
patterns and commands in chapter 27 |usr_27.txt|. You can find the full
|
||||
explanation here: |pattern|.
|
||||
patterns and commands can be found in chapter 27 |usr_27.txt|. You can find
|
||||
the full explanation here: |pattern|.
|
||||
|
||||
|
||||
BEGINNING AND END OF A LINE
|
||||
@ -522,9 +524,9 @@ And with "/^the" we find this one:
|
||||
the solder holding one of the chips melted and the ~
|
||||
xxx
|
||||
|
||||
You can try searching with "/^the$", it will only match a single line
|
||||
consisting of "the". White space does matter here, thus if a line contains a
|
||||
space after the word, like "the ", the pattern will not match.
|
||||
You can try searching with "/^the$"; it will only match a single line
|
||||
consisting entirely of "the". White space does matter here, thus if a line
|
||||
contains a space after the word, like "the ", the pattern will not match.
|
||||
|
||||
|
||||
MATCHING ANY SINGLE CHARACTER
|
||||
@ -559,20 +561,20 @@ where you came from, use this command: >
|
||||
|
||||
This ` is a backtick or open single-quote character.
|
||||
If you use the same command a second time you will jump back again. That's
|
||||
because the ` command is a jump itself, and the position from before this jump
|
||||
is remembered.
|
||||
because the "`" command is a jump itself, and the position from before this
|
||||
jump is remembered.
|
||||
|
||||
Generally, every time you do a command that can move the cursor further than
|
||||
within the same line, this is called a jump. This includes the search
|
||||
commands "/" and "n" (it doesn't matter how far away the match is). But not
|
||||
the character searches with "fx" and "tx" or the word movements "w" and "e".
|
||||
Also, "j" and "k" are not considered to be a jump. Even when you use a
|
||||
Also, "j" and "k" are not considered to be a jump, even when you use a
|
||||
count to make them move the cursor quite a long way away.
|
||||
|
||||
The `` command jumps back and forth, between two points. The CTRL-O command
|
||||
The "``" command jumps back and forth, between two points. The CTRL-O command
|
||||
jumps to older positions (Hint: O for older). CTRL-I then jumps back to newer
|
||||
positions (Hint: I is just next to O on the keyboard). Consider this sequence
|
||||
of commands: >
|
||||
positions (Hint: for many common keyboard layouts, I is just next to O).
|
||||
Consider this sequence of commands: >
|
||||
|
||||
33G
|
||||
/^The
|
||||
@ -610,9 +612,9 @@ Thus to move to the a mark:
|
||||
>
|
||||
`a
|
||||
|
||||
The command 'mark (single quotation mark, or apostrophe) moves you to the
|
||||
beginning of the line containing the mark. This differs from the `mark
|
||||
command, which moves you to marked column.
|
||||
The command "'mark" (single quotation mark, or apostrophe) moves you to the
|
||||
beginning of the line containing the mark. This differs from the "`mark"
|
||||
command, which also moves you to the marked column.
|
||||
|
||||
The marks can be very useful when working on two related parts in a file.
|
||||
Suppose you have some text near the start of the file you need to look at,
|
||||
|
@ -33,7 +33,7 @@ using a count: "4x" deletes four characters.
|
||||
move word command. In fact, the "d" command may be followed by any motion
|
||||
command, and it deletes from the current location to the place where the
|
||||
cursor winds up.
|
||||
The "4w" command, for example, moves the cursor over four words. The d4w
|
||||
The "4w" command, for example, moves the cursor over four words. The "d4w"
|
||||
command deletes four words.
|
||||
|
||||
To err is human. To really foul up you need a computer. ~
|
||||
@ -91,14 +91,14 @@ This "c2wbe<Esc>" contains these bits:
|
||||
be insert this text
|
||||
<Esc> back to Normal mode
|
||||
|
||||
If you have paid attention, you will have noticed something strange: The space
|
||||
before "human" isn't deleted. There is a saying that for every problem there
|
||||
is an answer that is simple, clear, and wrong. That is the case with the
|
||||
example used here for the "cw" command. The c operator works just like the
|
||||
d operator, with one exception: "cw". It actually works like "ce", change to
|
||||
end of word. Thus the space after the word isn't included. This is an
|
||||
exception that dates back to the old Vi. Since many people are used to it
|
||||
now, the inconsistency has remained in Vim.
|
||||
You will have noticed something strange: The space before "human" isn't
|
||||
deleted. There is a saying that for every problem there is an answer that is
|
||||
simple, clear, and wrong. That is the case with the example used here for the
|
||||
"cw" command. The c operator works just like the d operator, with one
|
||||
exception: "cw". It actually works like "ce", change to end of word. Thus
|
||||
the space after the word isn't included. This is an exception that dates back
|
||||
to the old Vi. Since many people are used to it now, the inconsistency has
|
||||
remained in Vim.
|
||||
|
||||
|
||||
MORE CHANGES
|
||||
@ -114,7 +114,7 @@ Insert mode and append new text.
|
||||
SHORTCUTS
|
||||
|
||||
Some operator-motion commands are used so often that they have been given a
|
||||
single letter command:
|
||||
single-letter command:
|
||||
|
||||
x stands for dl (delete character under the cursor)
|
||||
X stands for dh (delete character left of the cursor)
|
||||
@ -138,6 +138,7 @@ REPLACING WITH ONE CHARACTER
|
||||
The "r" command is not an operator. It waits for you to type a character, and
|
||||
will replace the character under the cursor with it. You could do the same
|
||||
with "cl" or with the "s" command, but with "r" you don't have to press <Esc>
|
||||
to get back out of insert mode.
|
||||
|
||||
there is somerhing grong here ~
|
||||
rT rt rw
|
||||
@ -164,7 +165,7 @@ The "." command is one of the most simple yet powerful commands in Vim. It
|
||||
repeats the last change. For instance, suppose you are editing an HTML file
|
||||
and want to delete all the <B> tags. You position the cursor on the first <
|
||||
and delete the <B> with the command "df>". You then go to the < of the next
|
||||
</B> and kill it using the "." command. The "." command executes the last
|
||||
</B> and delete it using the "." command. The "." command executes the last
|
||||
change command (in this case, "df>"). To delete another tag, position the
|
||||
cursor on the < and use the "." command.
|
||||
|
||||
@ -176,8 +177,8 @@ cursor on the < and use the "." command.
|
||||
f< find next < ------------->
|
||||
. repeat df> -->
|
||||
|
||||
The "." command works for all changes you make, except for the "u" (undo),
|
||||
CTRL-R (redo) and commands that start with a colon (:).
|
||||
The "." command works for all changes you make, except for "u" (undo), CTRL-R
|
||||
(redo) and commands that start with a colon (:).
|
||||
|
||||
Another example: You want to change the word "four" to "five". It appears
|
||||
several times in your text. You can do this quickly with this sequence of
|
||||
@ -269,8 +270,8 @@ where they open a new line below or above the cursor.
|
||||
==============================================================================
|
||||
*04.5* Moving text
|
||||
|
||||
When you delete something with the "d", "x", or another command, the text is
|
||||
saved. You can paste it back by using the p command. (The Vim name for
|
||||
When you delete something with "d", "x", or another command, the text is
|
||||
saved. You can paste it back by using the "p" command. (The Vim name for
|
||||
this is put).
|
||||
Take a look at how this works. First you will delete an entire line, by
|
||||
putting the cursor on the line you want to delete and typing "dd". Now you
|
||||
@ -362,11 +363,11 @@ Use "y$" to yank to the end of the line.
|
||||
|
||||
If you are using the GUI version of Vim (gvim), you can find the "Copy" item
|
||||
in the "Edit" menu. First select some text with Visual mode, then use the
|
||||
Edit/Copy menu. The selected text is now copied to the clipboard. You can
|
||||
paste the text in other programs. In Vim itself too.
|
||||
Edit/Copy menu item. The selected text is now copied to the clipboard. You
|
||||
can paste the text in other programs. In Vim itself too.
|
||||
|
||||
If you have copied text to the clipboard in another application, you can paste
|
||||
it in Vim with the Edit/Paste menu. This works in Normal mode and Insert
|
||||
it in Vim with the Edit/Paste menu item. This works in Normal mode and Insert
|
||||
mode. In Visual mode the selected text is replaced with the pasted text.
|
||||
|
||||
The "Cut" menu item deletes the text before it's put on the clipboard. The
|
||||
@ -385,7 +386,7 @@ To put text from the clipboard back into the text: >
|
||||
"*p
|
||||
|
||||
This only works on versions of Vim that include clipboard support. More about
|
||||
the clipboard in section |09.3| and here: |clipboard|.
|
||||
the clipboard can be found in section |09.3| and here: |clipboard|.
|
||||
|
||||
==============================================================================
|
||||
*04.8* Text objects
|
||||
@ -401,8 +402,8 @@ to do this: "daw".
|
||||
|
||||
The "d" of "daw" is the delete operator. "aw" is a text object. Hint: "aw"
|
||||
stands for "A Word". Thus "daw" is "Delete A Word". To be precise, the white
|
||||
space after the word is also deleted (the white space before the word at the
|
||||
end of the line).
|
||||
space after the word is also deleted (or the white space before the word if at
|
||||
the end of the line).
|
||||
|
||||
Using text objects is the third way to make changes in Vim. We already had
|
||||
operator-motion and Visual mode. Now we add operator-text object.
|
||||
@ -429,11 +430,11 @@ sentence "Another line.":
|
||||
some text. ~
|
||||
|
||||
"cis" consists of the "c" (change) operator and the "is" text object. This
|
||||
stands for "Inner Sentence". There is also the "as" (a sentence) object. The
|
||||
difference is that "as" includes the white space after the sentence and "is"
|
||||
doesn't. If you would delete a sentence, you want to delete the white space
|
||||
at the same time, thus use "das". If you want to type new text the white
|
||||
space can remain, thus you use "cis".
|
||||
stands for "Inner Sentence". There is also the "as" ("A Sentence") object.
|
||||
The difference is that "as" includes the white space after the sentence and
|
||||
"is" doesn't. If you would delete a sentence, you want to delete the white
|
||||
space at the same time, thus use "das". If you want to type new text the
|
||||
white space can remain, thus you use "cis".
|
||||
|
||||
You can also use text objects in Visual mode. It will include the text object
|
||||
in the Visual selection. Visual mode continues, thus you can do this several
|
||||
@ -470,13 +471,13 @@ character.
|
||||
*04.10* Conclusion
|
||||
|
||||
The operators, movement commands and text objects give you the possibility to
|
||||
make lots of combinations. Now that you know how it works, you can use N
|
||||
make lots of combinations. Now that you know how they work, you can use N
|
||||
operators with M movement commands to make N * M commands!
|
||||
|
||||
You can find a list of operators here: |operator|
|
||||
You can find a list of operators here: |operator|.
|
||||
|
||||
For example, there are many other ways to delete pieces of text. Here are a
|
||||
few often used ones:
|
||||
few common ones:
|
||||
|
||||
x delete character under the cursor (short for "dl")
|
||||
X delete character before the cursor (short for "dh")
|
||||
@ -492,14 +493,14 @@ If you use "c" instead of "d" they become change commands. And with "y" you
|
||||
yank the text. And so forth.
|
||||
|
||||
|
||||
There are a few often used commands to make changes that didn't fit somewhere
|
||||
There are a few common commands to make changes that didn't fit somewhere
|
||||
else:
|
||||
|
||||
~ change case of the character under the cursor, and move the
|
||||
~ Change case of the character under the cursor, and move the
|
||||
cursor to the next character. This is not an operator (unless
|
||||
'tildeop' is set), thus you can't use it with a motion
|
||||
command. It does work in Visual mode and changes case for
|
||||
all the selected text then.
|
||||
command. It does work in Visual mode, where it changes case
|
||||
for all the selected text.
|
||||
|
||||
I Start Insert mode after moving the cursor to the first
|
||||
non-blank in the line.
|
||||
|
@ -370,7 +370,8 @@ into "barfoo".
|
||||
was specified in this example. This is different from ":substitute", which
|
||||
works on one line without a range.
|
||||
The command isn't perfect, since it also matches lines where "//" appears
|
||||
halfway in a line, and the substitution will also take place before the "//".
|
||||
halfway through a line, and the substitution will also take place before the
|
||||
"//".
|
||||
|
||||
Just like with ":substitute", any pattern can be used. When you learn more
|
||||
complicated patterns later, you can use them here.
|
||||
@ -634,9 +635,9 @@ using it. To check the current value of 'textwidth': >
|
||||
:set textwidth
|
||||
|
||||
Now lines will be broken to take only up to 78 characters. However, when you
|
||||
insert text halfway through a line or delete a few words, the line will get
|
||||
too long or too short as Vim won't automatically reformat the text. To tell
|
||||
Vim to format the current paragraph:
|
||||
insert text halfway through a line, or when you delete a few words, the lines
|
||||
will get too long or too short. Vim doesn't automatically reformat the text.
|
||||
To tell Vim to format the current paragraph: >
|
||||
|
||||
gqap
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
" UTF-8) should work.
|
||||
scriptencoding utf-8
|
||||
|
||||
let b:keymap_name = "oto"
|
||||
let b:keymap_name = "oty"
|
||||
highlight lCursor guibg=red guifg=NONE
|
||||
|
||||
" map F8 to toggle keymap (Ctrl-^ not present on keyboard)
|
||||
@ -22,7 +22,10 @@ I 𐰄 10C04 OLD TURKIC LETTER YENISEI I
|
||||
04 𐰄 10C04 OLD TURKIC LETTER YENISEI I
|
||||
E 𐰅 10C05 OLD TURKIC LETTER YENISEI E
|
||||
05 𐰅 10C05 OLD TURKIC LETTER YENISEI E
|
||||
OE 𐰈 10C08 OLD TURKIC LETTER YENISEI OE
|
||||
OO 𐰆 10C06 OLD TURKIC LETTER ORKHON O
|
||||
U 𐰆 10C06 OLD TURKIC LETTER ORKHON O
|
||||
06 𐰆 10C06 OLD TURKIC LETTER ORKHON O
|
||||
E 𐰈 10C08 OLD TURKIC LETTER YENISEI OE
|
||||
UE 𐰈 10C08 OLD TURKIC LETTER YENISEI OE
|
||||
08 𐰈 10C08 OLD TURKIC LETTER YENISEI OE
|
||||
ab 𐰊 10C0A OLD TURKIC LETTER YENISEI AB
|
||||
@ -42,6 +45,10 @@ g2 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG
|
||||
ad 𐰒 10C12 OLD TURKIC LETTER YENISEI AD
|
||||
d1 𐰒 10C12 OLD TURKIC LETTER YENISEI AD
|
||||
12 𐰒 10C12 OLD TURKIC LETTER YENISEI AD
|
||||
aed 𐰓 10C13 OLD TURKIC LETTER ORKHON AED
|
||||
ed 𐰓 10C13 OLD TURKIC LETTER ORKHON AED
|
||||
d2 𐰓 10C13 OLD TURKIC LETTER ORKHON AED
|
||||
13 𐰓 10C13 OLD TURKIC LETTER ORKHON AED
|
||||
ez 𐰕 10C15 OLD TURKIC LETTER YENISEI EZ
|
||||
z 𐰕 10C15 OLD TURKIC LETTER YENISEI EZ
|
||||
15 𐰕 10C15 OLD TURKIC LETTER YENISEI EZ
|
||||
@ -65,6 +72,19 @@ al 𐰟 10C1F OLD TURKIC LETTER YENISEI AL
|
||||
l 𐰟 10C1F OLD TURKIC LETTER YENISEI AL
|
||||
l1 𐰟 10C1F OLD TURKIC LETTER YENISEI AL
|
||||
1f 𐰟 10C1F OLD TURKIC LETTER YENISEI AL
|
||||
ael 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL
|
||||
el 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL
|
||||
l2 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL
|
||||
20 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL
|
||||
elt 𐰡 10C21 OLD TURKIC LETTER ORKHON ELT
|
||||
lt 𐰡 10C21 OLD TURKIC LETTER ORKHON ELT
|
||||
21 𐰡 10C21 OLD TURKIC LETTER ORKHON ELT
|
||||
em 𐰢 10C22 OLD TURKIC LETTER ORKHON EM
|
||||
m 𐰢 10C22 OLD TURKIC LETTER ORKHON EM
|
||||
22 𐰢 10C22 OLD TURKIC LETTER ORKHON EM
|
||||
an 𐰣 10C23 OLD TURKIC LETTER ORKHON AN
|
||||
n1 𐰣 10C23 OLD TURKIC LETTER ORKHON AN
|
||||
23 𐰣 10C23 OLD TURKIC LETTER ORKHON AN
|
||||
aen 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN
|
||||
en 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN
|
||||
n2 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN
|
||||
@ -84,6 +104,14 @@ ng 𐰬 10C2C OLD TURKIC LETTER YENISEI ANG
|
||||
aeng 𐰮 10C2E OLD TURKIC LETTER YENISEI AENG
|
||||
eng 𐰮 10C2E OLD TURKIC LETTER YENISEI AENG
|
||||
2e 𐰮 10C2E OLD TURKIC LETTER YENISEI AENG
|
||||
ep 𐰯 10C2F OLD TURKIC LETTER ORKHON EP
|
||||
p 𐰯 10C2F OLD TURKIC LETTER ORKHON EP
|
||||
2f 𐰯 10C2F OLD TURKIC LETTER ORKHON EP
|
||||
op 𐰰 10C30 OLD TURKIC LETTER ORKHON OP
|
||||
up 𐰰 10C30 OLD TURKIC LETTER ORKHON OP
|
||||
30 𐰰 10C30 OLD TURKIC LETTER ORKHON OP
|
||||
ic 𐰱 10C31 OLD TURKIC LETTER ORKHON IC
|
||||
31 𐰱 10C31 OLD TURKIC LETTER ORKHON IC
|
||||
ec 𐰳 10C33 OLD TURKIC LETTER YENISEI EC
|
||||
c 𐰳 10C33 OLD TURKIC LETTER YENISEI EC
|
||||
33 𐰳 10C33 OLD TURKIC LETTER YENISEI EC
|
||||
@ -100,6 +128,17 @@ ar 𐰻 10C3B OLD TURKIC LETTER YENISEI AR
|
||||
r 𐰻 10C3B OLD TURKIC LETTER YENISEI AR
|
||||
r1 𐰻 10C3B OLD TURKIC LETTER YENISEI AR
|
||||
3b 𐰻 10C3B OLD TURKIC LETTER YENISEI AR
|
||||
aer 𐰼 10C3C OLD TURKIC LETTER ORKHON AER
|
||||
er 𐰼 10C3C OLD TURKIC LETTER ORKHON AER
|
||||
r2 𐰼 10C3C OLD TURKIC LETTER ORKHON AER
|
||||
3c 𐰼 10C3C OLD TURKIC LETTER ORKHON AER
|
||||
as 𐰽 10C3D OLD TURKIC LETTER ORKHON AS
|
||||
s1 𐰽 10C3D OLD TURKIC LETTER ORKHON AS
|
||||
3d 𐰽 10C3D OLD TURKIC LETTER ORKHON AS
|
||||
aes 𐰾 10C3E OLD TURKIC LETTER ORKHON AES
|
||||
es 𐰾 10C3E OLD TURKIC LETTER ORKHON AES
|
||||
s2 𐰾 10C3E OLD TURKIC LETTER ORKHON AES
|
||||
3e 𐰾 10C3E OLD TURKIC LETTER ORKHON AES
|
||||
ash 𐱀 10C40 OLD TURKIC LETTER YENISEI ASH
|
||||
sh1 𐱀 10C40 OLD TURKIC LETTER YENISEI ASH
|
||||
40 𐱀 10C40 OLD TURKIC LETTER YENISEI ASH
|
||||
@ -113,3 +152,8 @@ aet 𐱆 10C46 OLD TURKIC LETTER YENISEI AET
|
||||
et 𐱆 10C46 OLD TURKIC LETTER YENISEI AET
|
||||
t2 𐱆 10C46 OLD TURKIC LETTER YENISEI AET
|
||||
46 𐱆 10C46 OLD TURKIC LETTER YENISEI AET
|
||||
ot 𐱇 10C47 OLD TURKIC LETTER ORKHON OT
|
||||
ut 𐱇 10C47 OLD TURKIC LETTER ORKHON OT
|
||||
47 𐱇 10C47 OLD TURKIC LETTER ORKHON OT
|
||||
bash 𐱈 10C48 OLD TURKIC LETTER ORKHON BASH
|
||||
48 𐱈 10C48 OLD TURKIC LETTER ORKHON BASH
|
||||
|
@ -1,6 +1,6 @@
|
||||
" Vim syntax support file
|
||||
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
|
||||
" Last Change: 2018 Nov 11
|
||||
" Last Change: 2019 Nov 13
|
||||
"
|
||||
" Additional contributors:
|
||||
"
|
||||
@ -20,8 +20,13 @@
|
||||
" this file uses line continuations
|
||||
let s:cpo_sav = &cpo
|
||||
let s:ls = &ls
|
||||
let s:ei_sav = &eventignore
|
||||
set cpo&vim
|
||||
|
||||
" HTML filetype can take a while to load/highlight if the destination file
|
||||
" already exists.
|
||||
set eventignore+=FileType
|
||||
|
||||
let s:end=line('$')
|
||||
|
||||
" Font
|
||||
@ -37,6 +42,14 @@ endif
|
||||
|
||||
let s:settings = tohtml#GetUserSettings()
|
||||
|
||||
if s:settings.use_xhtml
|
||||
let s:html5 = 0
|
||||
elseif s:settings.use_css && !s:settings.no_pre
|
||||
let s:html5 = 1
|
||||
else
|
||||
let s:html5 = 0
|
||||
endif
|
||||
|
||||
if !exists('s:FOLDED_ID')
|
||||
let s:FOLDED_ID = hlID("Folded") | lockvar s:FOLDED_ID
|
||||
let s:FOLD_C_ID = hlID("FoldColumn") | lockvar s:FOLD_C_ID
|
||||
@ -69,9 +82,10 @@ if !empty(s:settings.prevent_copy)
|
||||
endif
|
||||
endif
|
||||
|
||||
" When not in gui we can only guess the colors.
|
||||
" TODO - is this true anymore?
|
||||
if has("gui_running")
|
||||
" When gui colors are not supported, we can only guess the colors.
|
||||
" TODO - is this true anymore? Is there a way to ask the terminal what colors
|
||||
" each number means or read them from some file?
|
||||
if &termguicolors || has("gui_running")
|
||||
let s:whatterm = "gui"
|
||||
else
|
||||
let s:whatterm = "cterm"
|
||||
@ -352,6 +366,12 @@ if s:settings.use_css
|
||||
\ ]
|
||||
else
|
||||
|
||||
" New method: use generated content in the CSS. The only thing needed here
|
||||
" is a span with no content, with an attribute holding the desired text.
|
||||
"
|
||||
" Old method: use an <input> element when text is unsectable. This is still
|
||||
" used in conditional comments for Internet Explorer, where the new method
|
||||
" doesn't work.
|
||||
"
|
||||
" Wrap the <input> in a <span> to allow fixing the stupid bug in some fonts
|
||||
" which cause browsers to display a 1px gap between lines when these
|
||||
@ -370,7 +390,14 @@ if s:settings.use_css
|
||||
" uses the number of unique codepoints for its limit.
|
||||
let wrapperfunc_lines += [
|
||||
\ ' if a:make_unselectable',
|
||||
\ ' return "<span ".a:extra_attrs."class=\"" . l:style_name .'.diffstyle.'"\">'.
|
||||
\ ' return "<span ".a:extra_attrs."class=\"" . l:style_name .'.diffstyle.'"\"'
|
||||
\ ]
|
||||
if s:settings.use_input_for_pc !=# 'all'
|
||||
let wrapperfunc_lines[-1] .= ' " . "data-" . l:style_name . "-content=\"".a:text."\"'
|
||||
endif
|
||||
let wrapperfunc_lines[-1] .= '>'
|
||||
if s:settings.use_input_for_pc !=# 'none'
|
||||
let wrapperfunc_lines[-1] .=
|
||||
\ '<input'.s:unselInputType.' class=\"" . l:style_name .'.diffstyle.'"\"'.
|
||||
\ ' value=\"".substitute(a:unformatted,''\s\+$'',"","")."\"'.
|
||||
\ ' onselect=''this.blur(); return false;'''.
|
||||
@ -378,7 +405,10 @@ if s:settings.use_css
|
||||
\ ' onclick=''this.blur(); return false;'''.
|
||||
\ ' readonly=''readonly'''.
|
||||
\ ' size=\"".strwidth(a:unformatted)."\"'.
|
||||
\ (s:settings.use_xhtml ? '/' : '').'></span>"',
|
||||
\ (s:settings.use_xhtml ? '/' : '').'>'
|
||||
endif
|
||||
let wrapperfunc_lines[-1] .= '</span>"'
|
||||
let wrapperfunc_lines += [
|
||||
\ ' else',
|
||||
\ ' return "<span ".a:extra_attrs."class=\"" . l:style_name .'. diffstyle .'"\">".a:text."</span>"'
|
||||
\ ]
|
||||
@ -501,27 +531,63 @@ else
|
||||
endfun
|
||||
endif
|
||||
if s:settings.prevent_copy =~# 'f'
|
||||
if s:settings.use_input_for_pc ==# 'none'
|
||||
" Simply space-pad to the desired width inside the generated content (note
|
||||
" that the FoldColumn definition includes a whitespace:pre rule)
|
||||
function! s:FoldColumn_build(char, len, numfill, char2, class, click)
|
||||
return "<a href='#' class='".a:class."' onclick='".a:click."' data-FoldColumn-content='".
|
||||
\ repeat(a:char, a:len).a:char2.repeat(' ', a:numfill).
|
||||
\ "'></a>"
|
||||
endfun
|
||||
function! s:FoldColumn_fill()
|
||||
return s:HtmlFormat(repeat(' ', s:foldcolumn), s:FOLD_C_ID, 0, "", 1)
|
||||
endfun
|
||||
else
|
||||
" Note the <input> elements for fill spaces will have a single space for
|
||||
" content, to allow active cursor CSS selection to work.
|
||||
"
|
||||
" Wrap the whole thing in a span for the 1px padding workaround for gaps.
|
||||
function! s:FoldColumn_build(char, len, numfill, char2, class, click)
|
||||
let l:input_open = "<input readonly='readonly'".s:unselInputType.
|
||||
\ " onselect='this.blur(); return false;'".
|
||||
\ " onmousedown='this.blur(); ".a:click." return false;'".
|
||||
\ " onclick='return false;' size='".
|
||||
\ string(a:len + (empty(a:char2) ? 0 : 1) + a:numfill) .
|
||||
\ "' "
|
||||
let l:common_attrs = "class='FoldColumn' value='"
|
||||
let l:input_close = (s:settings.use_xhtml ? "' />" : "'>")
|
||||
return "<span class='".a:class."'>".
|
||||
\ l:input_open.l:common_attrs.repeat(a:char, a:len).
|
||||
\ (!empty(a:char2) ? a:char2 : "").
|
||||
\ l:input_close . "</span>"
|
||||
endfun
|
||||
"
|
||||
" Build the function line by line containing only what is needed for the
|
||||
" options in use for maximum code sharing with minimal branch logic for
|
||||
" greater speed.
|
||||
"
|
||||
" Note, 'exec' commands do not recognize line continuations, so must
|
||||
" concatenate lines rather than continue them.
|
||||
let build_fun_lines = [
|
||||
\ 'function! s:FoldColumn_build(char, len, numfill, char2, class, click)',
|
||||
\ ' let l:input_open = "<input readonly=''readonly''".s:unselInputType.'.
|
||||
\ ' " onselect=''this.blur(); return false;''".'.
|
||||
\ ' " onmousedown=''this.blur(); ".a:click." return false;''".'.
|
||||
\ ' " onclick=''return false;'' size=''".'.
|
||||
\ ' string(a:len + (empty(a:char2) ? 0 : 1) + a:numfill) .'.
|
||||
\ ' "'' "',
|
||||
\ ' let l:common_attrs = "class=''FoldColumn'' value=''"',
|
||||
\ ' let l:input_close = (s:settings.use_xhtml ? "'' />" : "''>")'
|
||||
\ ]
|
||||
if s:settings.use_input_for_pc ==# 'fallback'
|
||||
let build_fun_lines += [
|
||||
\ ' let l:gen_content_link ='.
|
||||
\ ' "<a href=''#'' class=''FoldColumn'' onclick=''".a:click."'' data-FoldColumn-content=''".'.
|
||||
\ ' repeat(a:char, a:len).a:char2.repeat('' '', a:numfill).'.
|
||||
\ ' "''></a>"'
|
||||
\ ]
|
||||
endif
|
||||
let build_fun_lines += [
|
||||
\ ' return "<span class=''".a:class."''>".'.
|
||||
\ ' l:input_open.l:common_attrs.repeat(a:char, a:len).(a:char2).'.
|
||||
\ ' l:input_close.'.
|
||||
\ (s:settings.use_input_for_pc ==# 'fallback' ? 'l:gen_content_link.' : "").
|
||||
\ ' "</span>"',
|
||||
\ 'endfun'
|
||||
\ ]
|
||||
" create the function we built line by line above
|
||||
exec join(build_fun_lines, "\n")
|
||||
|
||||
function! s:FoldColumn_fill()
|
||||
return s:FoldColumn_build('', s:foldcolumn, 0, '', 'FoldColumn', '')
|
||||
return s:FoldColumn_build(' ', s:foldcolumn, 0, '', 'FoldColumn', '')
|
||||
endfun
|
||||
endif
|
||||
else
|
||||
" For normal fold columns, simply space-pad to the desired width (note that
|
||||
" the FoldColumn definition includes a whitespace:pre rule)
|
||||
@ -755,7 +821,11 @@ call extend(s:lines, [
|
||||
" include encoding as close to the top as possible, but only if not already
|
||||
" contained in XML information (to avoid haggling over content type)
|
||||
if s:settings.encoding != "" && !s:settings.use_xhtml
|
||||
if s:html5
|
||||
call add(s:lines, '<meta charset="' . s:settings.encoding . '"' . s:tag_close)
|
||||
else
|
||||
call add(s:lines, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . s:tag_close)
|
||||
endif
|
||||
endif
|
||||
call extend(s:lines, [
|
||||
\ ("<title>".expand("%:p:~")."</title>"),
|
||||
@ -766,6 +836,7 @@ call add(s:lines, '<meta name="syntax" content="'.s:current_syntax.'"'.s:tag_clo
|
||||
call add(s:lines, '<meta name="settings" content="'.
|
||||
\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
|
||||
\ ',prevent_copy='.s:settings.prevent_copy.
|
||||
\ ',use_input_for_pc='.s:settings.use_input_for_pc.
|
||||
\ '"'.s:tag_close)
|
||||
call add(s:lines, '<meta name="colorscheme" content="'.
|
||||
\ (exists('g:colors_name')
|
||||
@ -773,19 +844,21 @@ call add(s:lines, '<meta name="colorscheme" content="'.
|
||||
\ : 'none'). '"'.s:tag_close)
|
||||
|
||||
if s:settings.use_css
|
||||
call extend(s:lines, [
|
||||
\ "<style" . (s:html5 ? "" : " type=\"text/css\"") . ">",
|
||||
\ s:settings.use_xhtml ? "" : "<!--"])
|
||||
let s:ieonly = []
|
||||
if s:settings.dynamic_folds
|
||||
if s:settings.hover_unfold
|
||||
" if we are doing hover_unfold, use css 2 with css 1 fallback for IE6
|
||||
call extend(s:lines, [
|
||||
\ "<style type=\"text/css\">",
|
||||
\ s:settings.use_xhtml ? "" : "<!--",
|
||||
\ ".FoldColumn { text-decoration: none; white-space: pre; }",
|
||||
\ "",
|
||||
\ "body * { margin: 0; padding: 0; }", "",
|
||||
\ ".open-fold > .Folded { display: none; }",
|
||||
\ ".open-fold > span.Folded { display: none; }",
|
||||
\ ".open-fold > .fulltext { display: inline; }",
|
||||
\ ".closed-fold > .fulltext { display: none; }",
|
||||
\ ".closed-fold > .Folded { display: inline; }",
|
||||
\ ".closed-fold > span.Folded { display: inline; }",
|
||||
\ "",
|
||||
\ ".open-fold > .toggle-open { display: none; }",
|
||||
\ ".open-fold > .toggle-closed { display: inline; }",
|
||||
@ -796,63 +869,58 @@ if s:settings.use_css
|
||||
\ "similar browsers, but it should fail gracefully. */",
|
||||
\ ".closed-fold:hover > .fulltext { display: inline; }",
|
||||
\ ".closed-fold:hover > .toggle-filler { display: none; }",
|
||||
\ ".closed-fold:hover > .Folded { display: none; }",
|
||||
\ s:settings.use_xhtml ? "" : '-->',
|
||||
\ '</style>'])
|
||||
" TODO: IE7 doesn't *actually* support XHTML, maybe we should remove this.
|
||||
" But if it's served up as tag soup, maybe the following will work, so
|
||||
" leave it in for now.
|
||||
call extend(s:lines, [
|
||||
\ ".closed-fold:hover > .Folded { display: none; }"])
|
||||
" TODO: IE6 is REALLY old and I can't even test it anymore. Maybe we
|
||||
" should remove this? Leave it in for now, it was working at one point,
|
||||
" and doesn't affect any modern browsers. Even newer IE versions should
|
||||
" support the above code and ignore the following.
|
||||
let s:ieonly = [
|
||||
\ "<!--[if lt IE 7]><style type=\"text/css\">",
|
||||
\ ".open-fold .Folded { display: none; }",
|
||||
\ ".open-fold .fulltext { display: inline; }",
|
||||
\ ".open-fold span.Folded { display: none; }",
|
||||
\ ".open-fold .toggle-open { display: none; }",
|
||||
\ ".closed-fold .toggle-closed { display: inline; }",
|
||||
\ ".open-fold .toggle-closed { display: inline; }",
|
||||
\ "",
|
||||
\ ".closed-fold .fulltext { display: none; }",
|
||||
\ ".closed-fold .Folded { display: inline; }",
|
||||
\ ".closed-fold span.Folded { display: inline; }",
|
||||
\ ".closed-fold .toggle-open { display: inline; }",
|
||||
\ ".closed-fold .toggle-closed { display: none; }",
|
||||
\ "</style>",
|
||||
\ "<![endif]-->",
|
||||
\])
|
||||
\]
|
||||
else
|
||||
" if we aren't doing hover_unfold, use CSS 1 only
|
||||
call extend(s:lines, [
|
||||
\ "<style type=\"text/css\">",
|
||||
\ s:settings.use_xhtml ? "" :"<!--",
|
||||
\ ".FoldColumn { text-decoration: none; white-space: pre; }",
|
||||
\ ".open-fold .Folded { display: none; }",
|
||||
\ ".open-fold .fulltext { display: inline; }",
|
||||
\ ".open-fold span.Folded { display: none; }",
|
||||
\ ".open-fold .toggle-open { display: none; }",
|
||||
\ ".closed-fold .toggle-closed { display: inline; }",
|
||||
\ ".open-fold .toggle-closed { display: inline; }",
|
||||
\ "",
|
||||
\ ".closed-fold .fulltext { display: none; }",
|
||||
\ ".closed-fold .Folded { display: inline; }",
|
||||
\ ".closed-fold span.Folded { display: inline; }",
|
||||
\ ".closed-fold .toggle-open { display: inline; }",
|
||||
\ ".closed-fold .toggle-closed { display: none; }",
|
||||
\ s:settings.use_xhtml ? "" : '-->',
|
||||
\ '</style>'
|
||||
\])
|
||||
endif
|
||||
else
|
||||
" if we aren't doing any dynamic folding, no need for any special rules
|
||||
endif
|
||||
" else we aren't doing any dynamic folding, no need for any special rules
|
||||
|
||||
call extend(s:lines, [
|
||||
\ "<style type=\"text/css\">",
|
||||
\ s:settings.use_xhtml ? "" : "<!--",
|
||||
\ s:settings.use_xhtml ? "" : '-->',
|
||||
\ "</style>",
|
||||
\])
|
||||
endif
|
||||
call extend(s:lines, s:ieonly)
|
||||
unlet s:ieonly
|
||||
endif
|
||||
|
||||
let s:uses_script = s:settings.dynamic_folds || s:settings.line_ids || !empty(s:settings.prevent_copy)
|
||||
let s:uses_script = s:settings.dynamic_folds || s:settings.line_ids
|
||||
|
||||
" insert script tag if needed
|
||||
if s:uses_script
|
||||
call extend(s:lines, [
|
||||
\ "",
|
||||
\ "<script type='text/javascript'>",
|
||||
\ "<script" . (s:html5 ? "" : " type='text/javascript'") . ">",
|
||||
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
|
||||
endif
|
||||
|
||||
@ -924,65 +992,6 @@ if s:settings.line_ids
|
||||
\ ])
|
||||
endif
|
||||
|
||||
" Small text columns like the foldcolumn and line number column need a weird
|
||||
" hack to work around Webkit's and (in versions prior to 9) IE's lack of support
|
||||
" for the 'ch' unit without messing up Opera, which also doesn't support it but
|
||||
" works anyway.
|
||||
"
|
||||
" The problem is that without the 'ch' unit, it is not possible to specify a
|
||||
" size of an <input> in terms of character widths. Only Opera seems to do the
|
||||
" "sensible" thing and make the <input> sized to fit exactly as many characters
|
||||
" as specified by its "size" attribute, but the spec actually says "at least
|
||||
" wide enough to fit 'size' characters", so the other browsers are technically
|
||||
" correct as well.
|
||||
"
|
||||
" Anyway, this leads to two diffculties:
|
||||
" 1. The foldcolumn is made up of multiple elements side-by-side with
|
||||
" different sizes, each of which has their own extra padding added. Thus, a
|
||||
" column made up of one item of size 1 and another of size 2 would not
|
||||
" necessarily be equal in size to another line's foldcolumn with a single
|
||||
" item of size 3.
|
||||
" 2. The extra padding added to the <input> elements adds up to make the
|
||||
" foldcolumn and line number column too wide, especially in Webkit
|
||||
" browsers.
|
||||
"
|
||||
" So, the full workaround is:
|
||||
" 1. Define a default size in em, equal to the number of characters in the
|
||||
" input element, in case javascript is disabled and the browser does not
|
||||
" support the 'ch' unit. Unfortunately this makes Opera no longer work
|
||||
" properly without javascript. 1em per character is much too wide but it
|
||||
" looks better in webkit browsers than unaligned columns.
|
||||
" 2. Insert the following javascript to run at page load, which checks for the
|
||||
" width of a single character (in an extraneous page element inserted
|
||||
" before the page title, and set to hidden) and compares it to the width of
|
||||
" another extra <input> element with only one character. If the width
|
||||
" matches, the script does nothing more, but if not, it will figure out the
|
||||
" fraction of an em unit which would correspond with a ch unit if there
|
||||
" were one, and set the containing element (<pre> or <div>) to a class with
|
||||
" pre-defined rules which is closest to that fraction of an em. Rules are
|
||||
" defined from 0.05 em to 1em per ch.
|
||||
if !empty(s:settings.prevent_copy)
|
||||
call extend(s:lines, [
|
||||
\ '',
|
||||
\ '/* simulate a "ch" unit by asking the browser how big a zero character is */',
|
||||
\ 'function FixCharWidth() {',
|
||||
\ ' /* get the hidden element which gives the width of a single character */',
|
||||
\ ' var goodWidth = document.getElementById("oneCharWidth").clientWidth;',
|
||||
\ ' /* get all input elements, we''ll filter on class later */',
|
||||
\ ' var inputTags = document.getElementsByTagName("input");',
|
||||
\ ' var ratio = 5;',
|
||||
\ ' var inputWidth = document.getElementById("oneInputWidth").clientWidth;',
|
||||
\ ' var emWidth = document.getElementById("oneEmWidth").clientWidth;',
|
||||
\ ' if (inputWidth > goodWidth) {',
|
||||
\ ' while (ratio < 100*goodWidth/emWidth && ratio < 100) {',
|
||||
\ ' ratio += 5;',
|
||||
\ ' }',
|
||||
\ ' document.getElementById("vimCodeElement'.s:settings.id_suffix.'").className = "em"+ratio;',
|
||||
\ ' }',
|
||||
\ '}'
|
||||
\ ])
|
||||
endif
|
||||
|
||||
" insert script closing tag if needed
|
||||
if s:uses_script
|
||||
call extend(s:lines, [
|
||||
@ -992,18 +1001,9 @@ if s:uses_script
|
||||
\ ])
|
||||
endif
|
||||
|
||||
call extend(s:lines, ["</head>"])
|
||||
if !empty(s:settings.prevent_copy)
|
||||
call extend(s:lines,
|
||||
\ ["<body onload='FixCharWidth();".(s:settings.line_ids ? " JumpToLine();" : "")."'>",
|
||||
\ "<!-- hidden divs used by javascript to get the width of a char -->",
|
||||
\ "<div id='oneCharWidth'>0</div>",
|
||||
\ "<div id='oneInputWidth'><input size='1' value='0'".s:tag_close."</div>",
|
||||
\ "<div id='oneEmWidth' style='width: 1em;'></div>"
|
||||
\ ])
|
||||
else
|
||||
call extend(s:lines, ["<body".(s:settings.line_ids ? " onload='JumpToLine();'" : "").">"])
|
||||
endif
|
||||
call extend(s:lines, ["</head>",
|
||||
\ "<body".(s:settings.line_ids ? " onload='JumpToLine();'" : "").">"])
|
||||
|
||||
if s:settings.no_pre
|
||||
" if we're not using CSS we use a font tag which can't have a div inside
|
||||
if s:settings.use_css
|
||||
@ -1035,14 +1035,68 @@ if !s:settings.no_progress
|
||||
let s:progressbar={}
|
||||
|
||||
" Progessbar specific functions
|
||||
|
||||
func! s:SetProgbarColor()
|
||||
if hlID("TOhtmlProgress") != 0
|
||||
hi! link TOhtmlProgress_auto TOhtmlProgress
|
||||
elseif hlID("TOhtmlProgress_auto")==0 ||
|
||||
\ !exists("s:last_colors_name") || !exists("g:colors_name") ||
|
||||
\ g:colors_name != s:last_colors_name
|
||||
let s:last_colors_name = exists("g:colors_name") ? g:colors_name : "none"
|
||||
|
||||
let l:diffatr = synIDattr(hlID("DiffDelete"), "reverse", s:whatterm) ? "fg#" : "bg#"
|
||||
let l:stlatr = synIDattr(hlID("StatusLine"), "reverse", s:whatterm) ? "fg#" : "bg#"
|
||||
|
||||
let l:progbar_color = synIDattr(hlID("DiffDelete"), l:diffatr, s:whatterm)
|
||||
let l:stl_color = synIDattr(hlID("StatusLine"), l:stlatr, s:whatterm)
|
||||
|
||||
if "" == l:progbar_color
|
||||
let l:progbar_color = synIDattr(hlID("DiffDelete"), "reverse", s:whatterm) ? s:fgc : s:bgc
|
||||
endif
|
||||
if "" == l:stl_color
|
||||
let l:stl_color = synIDattr(hlID("StatusLine"), "reverse", s:whatterm) ? s:fgc : s:bgc
|
||||
endif
|
||||
|
||||
if l:progbar_color == l:stl_color
|
||||
if s:whatterm == 'cterm'
|
||||
if l:progbar_color >= (&t_Co/2)
|
||||
let l:progbar_color-=1
|
||||
else
|
||||
let l:progbar_color+=1
|
||||
endif
|
||||
else
|
||||
let l:rgb = map(matchlist(l:progbar_color, '#\zs\x\x\ze\(\x\x\)\(\x\x\)')[:2], 'str2nr(v:val, 16)')
|
||||
let l:avg = (l:rgb[0] + l:rgb[1] + l:rgb[2])/3
|
||||
if l:avg >= 128
|
||||
let l:avg_new = l:avg
|
||||
while l:avg - l:avg_new < 0x15
|
||||
let l:rgb = map(l:rgb, 'v:val * 3 / 4')
|
||||
let l:avg_new = (l:rgb[0] + l:rgb[1] + l:rgb[2])/3
|
||||
endwhile
|
||||
else
|
||||
let l:avg_new = l:avg
|
||||
while l:avg_new - l:avg < 0x15
|
||||
let l:rgb = map(l:rgb, 'min([max([v:val, 4]) * 5 / 4, 255])')
|
||||
let l:avg_new = (l:rgb[0] + l:rgb[1] + l:rgb[2])/3
|
||||
endwhile
|
||||
endif
|
||||
let l:progbar_color = printf("#%02x%02x%02x", l:rgb[0], l:rgb[1], l:rgb[2])
|
||||
endif
|
||||
echomsg "diff detected progbar color set to" l:progbar_color
|
||||
endif
|
||||
exe "hi TOhtmlProgress_auto" s:whatterm."bg=".l:progbar_color
|
||||
endif
|
||||
endfun
|
||||
|
||||
func! s:ProgressBar(title, max_value, winnr)
|
||||
let pgb=copy(s:progressbar)
|
||||
let pgb.title = a:title.' '
|
||||
let pgb.max_value = a:max_value
|
||||
let pgb.winnr = a:winnr
|
||||
let pgb.cur_value = 0
|
||||
|
||||
let pgb.items = { 'title' : { 'color' : 'Statusline' },
|
||||
\'bar' : { 'color' : 'Statusline' , 'fillcolor' : 'DiffDelete' , 'bg' : 'Statusline' } ,
|
||||
\'bar' : { 'color' : 'Statusline' , 'fillcolor' : 'TOhtmlProgress_auto' , 'bg' : 'Statusline' } ,
|
||||
\'counter' : { 'color' : 'Statusline' } }
|
||||
let pgb.last_value = 0
|
||||
let pgb.needs_redraw = 0
|
||||
@ -1134,6 +1188,8 @@ if !s:settings.no_progress
|
||||
" to process folds we make two passes through each line
|
||||
let s:pgb = s:ProgressBar("Processing folds:", line('$')*2, s:orgwin)
|
||||
endif
|
||||
|
||||
call s:SetProgbarColor()
|
||||
endif
|
||||
|
||||
" First do some preprocessing for dynamic folding. Do this for the entire file
|
||||
@ -1577,28 +1633,44 @@ while s:lnum <= s:end
|
||||
let s:tabidx = 0
|
||||
let s:tabwidth = 0
|
||||
while s:idx >= 0
|
||||
while s:startcol+s:idx > s:tabwidth + s:tablist[s:tabidx]
|
||||
if s:startcol + s:idx == 1
|
||||
let s:i = s:tablist[0]
|
||||
else
|
||||
" Get the character, which could be multiple bytes, which falls
|
||||
" immediately before the found tab. Extract it by matching a
|
||||
" character just prior to the column where the tab matches.
|
||||
" We'll use this to get the byte index of the character
|
||||
" immediately preceding the tab, so we can then look up the
|
||||
" virtual column that character appears in, to determine how
|
||||
" much of the current tabstop has been used up.
|
||||
if s:idx == 0
|
||||
" if the found tab is the first character in the text being
|
||||
" processed, we need to get the character prior to the text,
|
||||
" given by startcol.
|
||||
let s:prevc = matchstr(s:line, '.\%' . (s:startcol + s:offset) . 'c')
|
||||
else
|
||||
" Otherwise, the byte index of the tab into s:expandedtab is
|
||||
" given by s:idx.
|
||||
let s:prevc = matchstr(s:expandedtab, '.\%' . (s:idx + 1) . 'c')
|
||||
endif
|
||||
let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)])
|
||||
|
||||
" find the tabstop interval to use for the tab we just found. Keep
|
||||
" adding tabstops (which could be variable) until we would exceed
|
||||
" the virtual screen position of the start of the found tab.
|
||||
while s:vcol >= s:tabwidth + s:tablist[s:tabidx]
|
||||
let s:tabwidth += s:tablist[s:tabidx]
|
||||
if s:tabidx < len(s:tablist)-1
|
||||
let s:tabidx = s:tabidx+1
|
||||
endif
|
||||
endwhile
|
||||
if has("multi_byte_encoding")
|
||||
if s:startcol + s:idx == 1
|
||||
let s:i = s:tablist[s:tabidx]
|
||||
else
|
||||
if s:idx == 0
|
||||
let s:prevc = matchstr(s:line, '.\%' . (s:startcol + s:idx + s:offset) . 'c')
|
||||
else
|
||||
let s:prevc = matchstr(s:expandedtab, '.\%' . (s:idx + 1) . 'c')
|
||||
endif
|
||||
let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)])
|
||||
let s:i = s:tablist[s:tabidx] - (s:vcol - s:tabwidth)
|
||||
endif
|
||||
" update offset to keep the index within the line corresponding to
|
||||
" actual tab characters instead of replaced spaces; s:idx reflects
|
||||
" replaced spaces in s:expandedtab, s:offset cancels out all but
|
||||
" the tab character itself.
|
||||
let s:offset -= s:i - 1
|
||||
else
|
||||
let s:i = s:tablist[s:tabidx] - ((s:idx + s:startcol - 1) - s:tabwidth)
|
||||
endif
|
||||
let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '')
|
||||
let s:idx = stridx(s:expandedtab, "\t")
|
||||
endwhile
|
||||
@ -1674,12 +1746,10 @@ call append(line('$'), "<!-- vim: set foldmethod=manual : -->")
|
||||
|
||||
" Now, when we finally know which, we define the colors and styles
|
||||
if s:settings.use_css
|
||||
1;/<style type="text/+1
|
||||
1;/<style\>/+1
|
||||
endif
|
||||
|
||||
" Normal/global attributes
|
||||
" For Netscape 4, set <body> attributes too, though, strictly speaking, it's
|
||||
" incorrect.
|
||||
if s:settings.use_css
|
||||
if s:settings.no_pre
|
||||
call append('.', "body { color: " . s:fgc . "; background-color: " . s:bgc . "; font-family: ". s:htmlfont ."; }")
|
||||
@ -1702,47 +1772,89 @@ if s:settings.use_css
|
||||
" if we use any input elements for unselectable content, make sure they look
|
||||
" like normal text
|
||||
if !empty(s:settings.prevent_copy)
|
||||
if s:settings.use_input_for_pc !=# "none"
|
||||
call append('.', 'input { border: none; margin: 0; padding: 0; font-family: '.s:htmlfont.'; }')
|
||||
+
|
||||
" ch units for browsers which support them, em units for a somewhat
|
||||
" reasonable fallback. Also make sure the special elements for size
|
||||
" calculations aren't seen.
|
||||
" reasonable fallback.
|
||||
for w in range(1, 20, 1)
|
||||
call append('.', [
|
||||
\ "input[size='1'] { width: 1em; width: 1ch; }",
|
||||
\ "input[size='2'] { width: 2em; width: 2ch; }",
|
||||
\ "input[size='3'] { width: 3em; width: 3ch; }",
|
||||
\ "input[size='4'] { width: 4em; width: 4ch; }",
|
||||
\ "input[size='5'] { width: 5em; width: 5ch; }",
|
||||
\ "input[size='6'] { width: 6em; width: 6ch; }",
|
||||
\ "input[size='7'] { width: 7em; width: 7ch; }",
|
||||
\ "input[size='8'] { width: 8em; width: 8ch; }",
|
||||
\ "input[size='9'] { width: 9em; width: 9ch; }",
|
||||
\ "input[size='10'] { width: 10em; width: 10ch; }",
|
||||
\ "input[size='11'] { width: 11em; width: 11ch; }",
|
||||
\ "input[size='12'] { width: 12em; width: 12ch; }",
|
||||
\ "input[size='13'] { width: 13em; width: 13ch; }",
|
||||
\ "input[size='14'] { width: 14em; width: 14ch; }",
|
||||
\ "input[size='15'] { width: 15em; width: 15ch; }",
|
||||
\ "input[size='16'] { width: 16em; width: 16ch; }",
|
||||
\ "input[size='17'] { width: 17em; width: 17ch; }",
|
||||
\ "input[size='18'] { width: 18em; width: 18ch; }",
|
||||
\ "input[size='19'] { width: 19em; width: 19ch; }",
|
||||
\ "input[size='20'] { width: 20em; width: 20ch; }",
|
||||
\ "#oneCharWidth, #oneEmWidth, #oneInputWidth { padding: 0; margin: 0; position: absolute; left: -999999px; visibility: hidden; }"
|
||||
\ "input[size='".w."'] { width: ".w."em; width: ".w."ch; }"
|
||||
\ ])
|
||||
+21
|
||||
for w in range(5, 100, 5)
|
||||
let base = 0.01 * w
|
||||
call append('.', join(map(range(1,20), "'.em'.w.' input[size='''.v:val.'''] { width: '.string(v:val*base).'em; }'")))
|
||||
+
|
||||
endfor
|
||||
endif
|
||||
|
||||
if s:settings.use_input_for_pc !=# 'all'
|
||||
let s:unselectable_styles = []
|
||||
if s:settings.prevent_copy =~# 'f'
|
||||
call add(s:unselectable_styles, 'FoldColumn')
|
||||
endif
|
||||
if s:settings.prevent_copy =~# 'n'
|
||||
call add(s:unselectable_styles, 'LineNr')
|
||||
endif
|
||||
if s:settings.prevent_copy =~# 't' && !s:settings.ignore_folding
|
||||
call add(s:unselectable_styles, 'Folded')
|
||||
endif
|
||||
if s:settings.prevent_copy =~# 'd'
|
||||
call add(s:unselectable_styles, 'DiffDelete')
|
||||
endif
|
||||
if s:settings.use_input_for_pc !=# 'none'
|
||||
call append('.', [
|
||||
\ '/* Note: IE does not support @supports conditionals, but also does not fully support',
|
||||
\ ' "content:" with custom content, so we *want* the check to fail */',
|
||||
\ '@supports ( content: attr(data-custom-content) ) {'
|
||||
\ ])
|
||||
+3
|
||||
endif
|
||||
" The line number column inside the foldtext is styled just like the fold
|
||||
" text in Vim, but it should use the prevent_copy settings of line number
|
||||
" rather than fold text. Apply the prevent_copy styles to foldtext
|
||||
" specifically for line numbers, which always come after the fold column,
|
||||
" or at the beginning of the line.
|
||||
if s:settings.prevent_copy =~# 'n' && !s:settings.ignore_folding
|
||||
call append('.', [
|
||||
\ ' .FoldColumn + .Folded, .Folded:first-child { user-select: none; }',
|
||||
\ ' .FoldColumn + [data-Folded-content]::before, [data-Folded-content]:first-child::before { content: attr(data-Folded-content); }',
|
||||
\ ' .FoldColumn + [data-Folded-content]::before, [data-Folded-content]:first-child::before { padding-bottom: 1px; display: inline-block; /* match the 1-px padding of standard items with background */ }',
|
||||
\ ' .FoldColumn + span[data-Folded-content]::before, [data-Folded-content]:first-child::before { cursor: default; }',
|
||||
\ ])
|
||||
+4
|
||||
endif
|
||||
for s:style_name in s:unselectable_styles
|
||||
call append('.', [
|
||||
\ ' .'.s:style_name.' { user-select: none; }',
|
||||
\ ' [data-'.s:style_name.'-content]::before { content: attr(data-'.s:style_name.'-content); }',
|
||||
\ ' [data-'.s:style_name.'-content]::before { padding-bottom: 1px; display: inline-block; /* match the 1-px padding of standard items with background */ }',
|
||||
\ ' span[data-'.s:style_name.'-content]::before { cursor: default; }',
|
||||
\ ])
|
||||
+4
|
||||
endfor
|
||||
if s:settings.use_input_for_pc !=# 'none'
|
||||
call append('.', [
|
||||
\ ' input { display: none; }',
|
||||
\ '}'
|
||||
\ ])
|
||||
+2
|
||||
endif
|
||||
unlet s:unselectable_styles
|
||||
endif
|
||||
|
||||
" Fix mouse cursor shape for the fallback <input> method of uncopyable text
|
||||
if s:settings.use_input_for_pc !=# 'none'
|
||||
if s:settings.prevent_copy =~# 'f'
|
||||
" Make the cursor show active fold columns as active areas, and empty fold
|
||||
" columns as not interactive.
|
||||
call append('.', ['input.FoldColumn { cursor: pointer; }',
|
||||
\ 'input.FoldColumn[value=""] { cursor: default; }'
|
||||
\ 'input.FoldColumn[value="'.repeat(' ', s:foldcolumn).'"] { cursor: default; }'
|
||||
\ ])
|
||||
+2
|
||||
if s:settings.use_input_for_pc !=# 'all'
|
||||
call append('.', [
|
||||
\ 'a[data-FoldColumn-content="'.repeat(' ', s:foldcolumn).'"] { cursor: default; }'
|
||||
\ ])
|
||||
+1
|
||||
end
|
||||
endif
|
||||
" make line number column show as non-interactive if not selectable
|
||||
if s:settings.prevent_copy =~# 'n'
|
||||
@ -1755,8 +1867,16 @@ if s:settings.use_css
|
||||
call append('.', 'input.Folded { cursor: default; }')
|
||||
+
|
||||
endif
|
||||
" make diff filler show as non-interactive if not selectable
|
||||
if s:settings.prevent_copy =~# 'd'
|
||||
call append('.', 'input.DiffDelete { cursor: default; }')
|
||||
+
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
" For Netscape 4, set <body> attributes too, though, strictly speaking, it's
|
||||
" incorrect.
|
||||
execute '%s:<body\([^>]*\):<body bgcolor="' . s:bgc . '" text="' . s:fgc . '"\1>\r<font face="'. s:htmlfont .'"'
|
||||
endif
|
||||
|
||||
@ -1779,8 +1899,8 @@ endif
|
||||
" The DTD
|
||||
if s:settings.use_xhtml
|
||||
exe "normal! gg$a\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"
|
||||
elseif s:settings.use_css && !s:settings.no_pre
|
||||
exe "normal! gg0i<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n"
|
||||
elseif s:html5
|
||||
exe "normal! gg0i<!DOCTYPE html>\n"
|
||||
else
|
||||
exe "normal! gg0i<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n"
|
||||
endif
|
||||
@ -1823,6 +1943,7 @@ exec 'resize' s:old_winheight
|
||||
let &l:winfixheight = s:old_winfixheight
|
||||
|
||||
let &ls=s:ls
|
||||
let &eventignore=s:ei_sav
|
||||
|
||||
" Save a little bit of memory (worth doing?)
|
||||
unlet s:htmlfont s:whitespace
|
||||
@ -1831,7 +1952,7 @@ unlet s:old_magic s:old_more s:old_fen s:old_winheight
|
||||
unlet! s:old_isprint
|
||||
unlet s:whatterm s:stylelist s:diffstylelist s:lnum s:end s:margin s:fgc s:bgc s:old_winfixheight
|
||||
unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:concealinfo s:diff_mode
|
||||
unlet! s:orgwin s:newwin s:orgbufnr s:idx s:i s:offset s:ls s:origwin_stl
|
||||
unlet! s:orgwin s:newwin s:orgbufnr s:idx s:i s:offset s:ls s:ei_sav s:origwin_stl
|
||||
unlet! s:newwin_stl s:current_syntax
|
||||
if !v:profiling
|
||||
delfunc s:HtmlColor
|
||||
|
@ -1,17 +1,17 @@
|
||||
" Vim syntax file
|
||||
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
|
||||
" Version: 100
|
||||
" Last Change: 2016 Oct. 29
|
||||
" Version: 101
|
||||
" Last Change: 2019 Nov. 26
|
||||
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
|
||||
" Usage: For instructions, do :help fortran-syntax from Vim
|
||||
" Credits:
|
||||
" Version 0.1 (April 2000) for Fortran 95 was based on the Fortran 77 syntax file by
|
||||
" Mario Eusebio and Preben Guldberg. Since then, useful suggestions and contributions
|
||||
" have been made, in chronological order, by:
|
||||
" Version 0.1 for Fortran 95 was created (April 2000) by Ajit Thakkar from the
|
||||
" Fortran 77 syntax file by Mario Eusebio and Preben Guldberg.
|
||||
" Since then, useful suggestions and contributions have been made, in order, by:
|
||||
" Andrej Panjkov, Bram Moolenaar, Thomas Olsen, Michael Sternberg, Christian Reile,
|
||||
" Walter Dieudonné, Alexander Wagner, Roman Bertle, Charles Rendleman,
|
||||
" Andrew Griffiths, Joe Krahn, Hendrik Merx, Matt Thompson, Jan Hermann,
|
||||
" Stefano Zaghi, Vishnu V. Krishnan and Judicaël Grasset
|
||||
" Stefano Zaghi, Vishnu V. Krishnan, Judicaël Grasset, and Takuma Yoshida
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@ -92,9 +92,9 @@ else
|
||||
syn match fortranConstructName "^\s*\zs\a\w*\ze\s*:"
|
||||
endif
|
||||
if exists("fortran_more_precise")
|
||||
syn match fortranConstructName "\(\<end\s*do\s\+\)\@<=\a\w*"
|
||||
syn match fortranConstructName "\(\<end\s*if\s\+\)\@<=\a\w*"
|
||||
syn match fortranConstructName "\(\<end\s*select\s\+\)\@<=\a\w*"
|
||||
syn match fortranConstructName "\(\<end\s*do\s\+\)\@11<=\a\w*"
|
||||
syn match fortranConstructName "\(\<end\s*if\s\+\)\@11<=\a\w*"
|
||||
syn match fortranConstructName "\(\<end\s*select\s\+\)\@15<=\a\w*"
|
||||
endif
|
||||
|
||||
syn match fortranUnitHeader "\<end\>"
|
||||
@ -185,8 +185,8 @@ syn match fortranLabelNumber display "^ \d\s"ms=s+4,me=e-1
|
||||
if exists("fortran_more_precise")
|
||||
" Numbers as targets
|
||||
syn match fortranTarget display "\(\<if\s*(.\+)\s*\)\@<=\(\d\+\s*,\s*\)\{2}\d\+\>"
|
||||
syn match fortranTarget display "\(\<do\s\+\)\@<=\d\+\>"
|
||||
syn match fortranTarget display "\(\<go\s*to\s*(\=\)\@<=\(\d\+\s*,\s*\)*\d\+\>"
|
||||
syn match fortranTarget display "\(\<do\s\+\)\@<11=\d\+\>"
|
||||
syn match fortranTarget display "\(\<go\s*to\s*(\=\)\@<11=\(\d\+\s*,\s*\)*\d\+\>"
|
||||
endif
|
||||
|
||||
syn keyword fortranTypeR external
|
||||
@ -274,7 +274,7 @@ syn match fortranType "\<elemental\>"
|
||||
syn match fortranType "\<pure\>"
|
||||
syn match fortranType "\<impure\>"
|
||||
if exists("fortran_more_precise")
|
||||
syn match fortranConstructName "\(\<end\s*forall\s\+\)\@<=\a\w*\>"
|
||||
syn match fortranConstructName "\(\<end\s*forall\s\+\)\@<15=\a\w*\>"
|
||||
endif
|
||||
|
||||
if b:fortran_dialect == "f08"
|
||||
@ -375,7 +375,8 @@ syn match cPreProc "^\s*#\s*\(define\|ifdef\)\>.*"
|
||||
syn match cPreProc "^\s*#\s*\(elif\|if\)\>.*"
|
||||
syn match cPreProc "^\s*#\s*\(ifndef\|undef\)\>.*"
|
||||
syn match cPreCondit "^\s*#\s*\(else\|endif\)\>.*"
|
||||
syn region cIncluded contained start=+"[^(]+ skip=+\\\\\|\\"+ end=+"+ contains=fortranLeftMargin,fortranContinueMark,fortranSerialNumber
|
||||
syn region cIncluded contained start=+"[^("]+ skip=+\\\\\|\\"+ end=+"+ contains=fortranLeftMargin,fortranContinueMark,fortranSerialNumber
|
||||
"syn region cIncluded contained start=+"[^("]+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn match cIncluded contained "<[^>]*>"
|
||||
syn match cInclude "^\s*#\s*include\>\s*["<]" contains=cIncluded
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim help file
|
||||
" Maintainer: Bram Moolenaar (Bram@vim.org)
|
||||
" Last Change: 2019 May 12
|
||||
" Last Change: 2019 Nov 26
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@ -85,6 +85,7 @@ syn match helpSpecial "\[group]"
|
||||
syn match helpNormal "\[\(readonly\|fifo\|socket\|converted\|crypted\)]"
|
||||
|
||||
syn match helpSpecial "CTRL-."
|
||||
syn match helpSpecial "CTRL-SHIFT-."
|
||||
syn match helpSpecial "CTRL-Break"
|
||||
syn match helpSpecial "CTRL-PageUp"
|
||||
syn match helpSpecial "CTRL-PageDown"
|
||||
|
@ -339,8 +339,7 @@ msgstr "E512: Kapatma başarısız oldu"
|
||||
|
||||
msgid "E513: write error, conversion failed (make 'fenc' empty to override)"
|
||||
msgstr ""
|
||||
"E513: Yazma hatası, dönüştürme başarısız (yoksaymak için kodlamayı boş "
|
||||
"bırakın)"
|
||||
"E513: Yazma hatası, dönüştürme başarısız (yoksaymak için 'fenc'i boş bırakın)"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -519,7 +518,7 @@ msgstr "çerçeve en yüksek düzeyde: %d"
|
||||
|
||||
#, c-format
|
||||
msgid "Breakpoint in \"%s%s\" line %ld"
|
||||
msgstr "Kesme noktası şurada: \"%s%s\", %ld. satır"
|
||||
msgstr "\"%s%s\" içinde kesme noktası, %ld. satır"
|
||||
|
||||
#, c-format
|
||||
msgid "E161: Breakpoint not found: %s"
|
||||
@ -598,7 +597,6 @@ msgstr ""
|
||||
msgid "E100: No other buffer in diff mode"
|
||||
msgstr "E100: Karşılaştırma kipinde başka hiçbir arabellek yok"
|
||||
|
||||
|
||||
#, c-format
|
||||
msgid "E102: Can't find buffer \"%s\""
|
||||
msgstr "E102: Arabellek \"%s\" bulunamıyor"
|
||||
@ -1172,14 +1170,14 @@ msgstr[0] "%ld değiştirme/%ld satırda"
|
||||
msgstr[1] "%ld değiştirme/%ld satırda"
|
||||
|
||||
msgid "E147: Cannot do :global recursive with a range"
|
||||
msgstr "E147: :global özyinelemesi bir erim ile yapılamaz"
|
||||
msgstr "E147: :global özyineli bir erim ile yapılamaz"
|
||||
|
||||
msgid "E148: Regular expression missing from global"
|
||||
msgstr "E148: Düzenli ifadeler genelden kayıp"
|
||||
msgstr "E148: Düzenli ifadeler eksik"
|
||||
|
||||
#, c-format
|
||||
msgid "Pattern found in every line: %s"
|
||||
msgstr "Dizgi her satırda bulundu: %s"
|
||||
msgstr "Dizginin bulunduğu her satır: %s"
|
||||
|
||||
#, c-format
|
||||
msgid "Pattern not found: %s"
|
||||
@ -1272,7 +1270,7 @@ msgid "Executing: %s"
|
||||
msgstr "Çalıştırılıyor: %s"
|
||||
|
||||
msgid "E169: Command too recursive"
|
||||
msgstr "E169: Komut çok özyinelemeli"
|
||||
msgstr "E169: Komut çok özyineli"
|
||||
|
||||
#, c-format
|
||||
msgid "E605: Exception not caught: %s"
|
||||
@ -1374,7 +1372,7 @@ msgid "Window position: X %d, Y %d"
|
||||
msgstr "Pencere konumu: X %d, Y %d"
|
||||
|
||||
msgid "E188: Obtaining window position not implemented for this platform"
|
||||
msgstr "E188: Pencere konumunu alma özelliği bu sistemde mevcut değil"
|
||||
msgstr "E188: Pencere konumunu alma özelliği bu platformda mevcut değil"
|
||||
|
||||
msgid "E466: :winpos requires two number arguments"
|
||||
msgstr "E466: :winpos iki adet sayı değişken gerektirir"
|
||||
@ -1807,7 +1805,7 @@ msgid "E222: Add to read buffer"
|
||||
msgstr "E222: Okuma arabelleğine ekle"
|
||||
|
||||
msgid "E223: recursive mapping"
|
||||
msgstr "E223: Özyinelemeli eşlemleme"
|
||||
msgstr "E223: Özyineli eşlemleme"
|
||||
|
||||
msgid "E851: Failed to create a new process for the GUI"
|
||||
msgstr "E851: Grafik arabirim için yeni bir işlem yaratılamadı"
|
||||
@ -2040,7 +2038,7 @@ msgstr "E253: Yazıtipi seti adı: %s"
|
||||
|
||||
#, c-format
|
||||
msgid "Font0: %s"
|
||||
msgstr "Font0: %s"
|
||||
msgstr "Yazıtipi0: %s"
|
||||
|
||||
#, c-format
|
||||
msgid "Font%d: %s"
|
||||
@ -2048,11 +2046,11 @@ msgstr "Yazıtipi%d: %s"
|
||||
|
||||
#, c-format
|
||||
msgid "Font%d width is not twice that of font0"
|
||||
msgstr "Yazıtipi%d genişliği font0 genişliğinin iki katı olmalıdır"
|
||||
msgstr "Yazıtipi%d genişliği yazıtipi0 genişliğinin iki katı olmalıdır"
|
||||
|
||||
#, c-format
|
||||
msgid "Font0 width: %d"
|
||||
msgstr "Font0 genişliği: %d"
|
||||
msgstr "Yazıtipi0 genişliği: %d"
|
||||
|
||||
#, c-format
|
||||
msgid "Font%d width: %d"
|
||||
@ -2185,7 +2183,7 @@ msgid "Print job sent."
|
||||
msgstr "Yazdırma işi gönderildi"
|
||||
|
||||
msgid "E679: recursive loop loading syncolor.vim"
|
||||
msgstr "E679: syncolor.vim yüklenirken özyinelemeli döngü"
|
||||
msgstr "E679: syncolor.vim yüklenirken özyineli döngü"
|
||||
|
||||
#, c-format
|
||||
msgid "E411: highlight group not found: %s"
|
||||
@ -2354,7 +2352,7 @@ msgstr "E469: Geçersiz cscopequickfix bayrağı %c, %c için"
|
||||
|
||||
#, c-format
|
||||
msgid "E259: no matches found for cscope query %s of %s"
|
||||
msgstr "E259: cscope sorguse %s/%s için eşleşme bulunamadı"
|
||||
msgstr "E259: cscope sorgusu %s/%s için eşleşme bulunamadı"
|
||||
|
||||
msgid "cscope commands:\n"
|
||||
msgstr "cscope komutları:\n"
|
||||
@ -2519,7 +2517,7 @@ msgstr ""
|
||||
"E887: Üzgünüm, bu komut etkin değil, Python'un site birimi yüklenemedi."
|
||||
|
||||
msgid "E659: Cannot invoke Python recursively"
|
||||
msgstr "E659: Python özyinelemeli olarak çalıştırılamıyor"
|
||||
msgstr "E659: Python özyineli olarak çalıştırılamıyor"
|
||||
|
||||
msgid "E837: This Vim cannot execute :py3 after using :python"
|
||||
msgstr "E837: Bu Vim :python komutundan sonra :py3 komutunu çalıştıramaz"
|
||||
@ -2803,13 +2801,12 @@ msgstr "Sonrasında değişken eksik:"
|
||||
msgid "Garbage after option argument"
|
||||
msgstr "Seçenek değişkeninden sonra anlamsız veri"
|
||||
|
||||
|
||||
msgid "Invalid argument for"
|
||||
msgstr "Şunun için geçersiz değişken:"
|
||||
|
||||
#, c-format
|
||||
msgid "%d files to edit\n"
|
||||
msgstr "düzenlenecek %d dosya\n"
|
||||
msgstr "%d dosya düzenleniyor\n"
|
||||
|
||||
msgid "netbeans is not supported with this GUI\n"
|
||||
msgstr "NetBeans bu grafik arabirimde desteklenmiyor\n"
|
||||
@ -2892,7 +2889,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"\n"
|
||||
"BÜYÜK/küçük harfin yoksayıldığı yerde bayrağı BÜYÜK harfli yapmak "
|
||||
"içinbaşına / koyun"
|
||||
"için başına / koyun"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
@ -3091,7 +3088,7 @@ msgid "--servername <name>\tSend to/become the Vim server <name>"
|
||||
msgstr "--servername <ad>\t<ad> Vim sunucusuna gönder veya sunucu ol"
|
||||
|
||||
msgid "--startuptime <file>\tWrite startup timing messages to <file>"
|
||||
msgstr "--startuptime <dsy>\tBaşlangıç zamanlama iletilerini <dosya>'ya yaz"
|
||||
msgstr "--startuptime <dsy>\tBaşlangıç zamanlama iletilerini <dsy>'ya yaz"
|
||||
|
||||
msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
|
||||
msgstr "-i <viminfo>\t\t.viminfo yerine <viminfo> kullan"
|
||||
@ -3216,11 +3213,11 @@ msgstr ": Gönderme başarısız oldu.\n"
|
||||
|
||||
#, c-format
|
||||
msgid "E224: global abbreviation already exists for %s"
|
||||
msgstr "E224: %s için genel kısaltma hâlihazırda var"
|
||||
msgstr "E224: %s için global kısaltma hâlihazırda var"
|
||||
|
||||
#, c-format
|
||||
msgid "E225: global mapping already exists for %s"
|
||||
msgstr "E225: %s için genel eşlemleme hâlihazırda var "
|
||||
msgstr "E225: %s için global eşlemleme hâlihazırda var "
|
||||
|
||||
#, c-format
|
||||
msgid "E226: abbreviation already exists for %s"
|
||||
@ -3505,7 +3502,6 @@ msgstr ""
|
||||
"Bu .swp dosyasını silmeniz iyi olur.\n"
|
||||
"\n"
|
||||
|
||||
|
||||
msgid "Swap files found:"
|
||||
msgstr "Takas dosyası bulundu:"
|
||||
|
||||
@ -3878,14 +3874,14 @@ msgstr "Sayı girin ve <Enter>'a basın (boş iptal eder): "
|
||||
#, c-format
|
||||
msgid "%ld more line"
|
||||
msgid_plural "%ld more lines"
|
||||
msgstr[0] "%ld fazla satır"
|
||||
msgstr[1] "%ld fazla satır"
|
||||
msgstr[0] "%ld daha fazla satır"
|
||||
msgstr[1] "%ld daha fazla satır"
|
||||
|
||||
#, c-format
|
||||
msgid "%ld line less"
|
||||
msgid_plural "%ld fewer lines"
|
||||
msgstr[0] "%ld az satır"
|
||||
msgstr[1] "%ld az satır"
|
||||
msgstr[0] "%ld daha az satır"
|
||||
msgstr[1] "%ld daha az satır"
|
||||
|
||||
msgid " (Interrupted)"
|
||||
msgstr " (Yarıda kesildi)"
|
||||
@ -4583,7 +4579,7 @@ msgid "E70: Empty %s%%[]"
|
||||
msgstr "E70: Boş %s%%[]"
|
||||
|
||||
msgid "E956: Cannot use pattern recursively"
|
||||
msgstr "E956: Dizgi özyinelemeli olarak kullanılamıyor"
|
||||
msgstr "E956: Dizgi özyineli olarak kullanılamıyor"
|
||||
|
||||
#, c-format
|
||||
msgid "E554: Syntax error in %s{...}"
|
||||
@ -4745,7 +4741,6 @@ msgstr[1] "%ld satır kopyalandı%s"
|
||||
msgid "E353: Nothing in register %s"
|
||||
msgstr "E353: Yazmaç %s boş"
|
||||
|
||||
|
||||
msgid ""
|
||||
"E883: search pattern and expression register may not contain two or more "
|
||||
"lines"
|
||||
@ -5335,11 +5330,11 @@ msgstr "E765: 'spellfile' içinde %d girdi yok"
|
||||
|
||||
#, c-format
|
||||
msgid "Word '%.*s' removed from %s"
|
||||
msgstr "Sözcük '%.*s', %s içinden çıkartıldı"
|
||||
msgstr "Sözcük '%.*s' %s içinden çıkartıldı"
|
||||
|
||||
#, c-format
|
||||
msgid "Word '%.*s' added to %s"
|
||||
msgstr "Sözcük '%.*s', %s dosyasına eklendi"
|
||||
msgstr "Sözcük '%.*s' %s dosyasına eklendi"
|
||||
|
||||
msgid "E763: Word characters differ between spell files"
|
||||
msgstr "E763: Sözcük karakterleri yazım dosyaları arasında ayrımlı"
|
||||
@ -5356,7 +5351,7 @@ msgstr "Üzgünüm, yalnızca %ld öneri"
|
||||
|
||||
#, c-format
|
||||
msgid "Change \"%.*s\" to:"
|
||||
msgstr "\"%.*s\", şuna değiştirilecek:"
|
||||
msgstr "\"%.*s\" şuna değiştirilecek:"
|
||||
|
||||
#, c-format
|
||||
msgid " < \"%.*s\""
|
||||
@ -5656,7 +5651,7 @@ msgid ""
|
||||
"--- Terminal keys ---"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"--- Uçbirim anahtarları ---"
|
||||
"--- Uçbirim düğmeleri ---"
|
||||
|
||||
msgid "Cannot open $VIMRUNTIME/rgb.txt"
|
||||
msgstr "$VIMRUNTIME/rgb.txt açılamıyor"
|
||||
@ -6402,7 +6397,7 @@ msgid ""
|
||||
"# global variables:\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"# genel değişkenler:\n"
|
||||
"# global değişkenler:\n"
|
||||
|
||||
msgid ""
|
||||
"\n"
|
||||
@ -6558,7 +6553,6 @@ msgstr "E370: %s kitaplığı yüklenemedi"
|
||||
msgid "Sorry, this command is disabled: the Perl library could not be loaded."
|
||||
msgstr "Üzgünüm, bu komut etkin değil: Perl kitaplığı yüklenemedi."
|
||||
|
||||
|
||||
msgid "Edit with &multiple Vims"
|
||||
msgstr "Birden &fazla Vim ile düzenle"
|
||||
|
||||
@ -6566,7 +6560,7 @@ msgid "Edit with single &Vim"
|
||||
msgstr "Tek bir &Vim ile düzenle"
|
||||
|
||||
msgid "Diff with Vim"
|
||||
msgstr "Ayrımları Vim ile gözet"
|
||||
msgstr "Vim kullanarak karşılaştır"
|
||||
|
||||
msgid "Edit with &Vim"
|
||||
msgstr "&Vim ile düzenle"
|
||||
@ -6580,7 +6574,6 @@ msgstr "Mevcut Vim ile düzenle - "
|
||||
msgid "Edits the selected file(s) with Vim"
|
||||
msgstr "Seçili dosyaları Vim ile düzenler"
|
||||
|
||||
|
||||
msgid "gvimext.dll error"
|
||||
msgstr "gvimext.dll hatası"
|
||||
|
||||
@ -6994,7 +6987,7 @@ msgid "E919: Directory not found in '%s': \"%s\""
|
||||
msgstr "E919: '%s' içinde dizin bulunamadı: \"%s\""
|
||||
|
||||
msgid "E952: Autocommand caused recursive behavior"
|
||||
msgstr "E952: Otokomut özyineleme davranışına neden oldu"
|
||||
msgstr "E952: Otokomut özyineli davranışa neden oldu"
|
||||
|
||||
msgid "E328: Menu only exists in another mode"
|
||||
msgstr "E328: Menü yalnızca başka bir kipte mevcut"
|
||||
@ -7170,11 +7163,11 @@ msgstr "pencereler arasında gezinirken hata"
|
||||
|
||||
#, c-format
|
||||
msgid "unable to unset global option %s"
|
||||
msgstr "%s genel seçenek ayarı kapatılamıyor"
|
||||
msgstr "%s global seçenek ayarı kapatılamıyor"
|
||||
|
||||
#, c-format
|
||||
msgid "unable to unset option %s which does not have global value"
|
||||
msgstr "genel bir değeri olmayan %s seçenek ayarı kapatılamıyor"
|
||||
msgstr "global değeri olmayan %s seçenek ayarı kapatılamıyor"
|
||||
|
||||
msgid "attempt to refer to deleted tab page"
|
||||
msgstr "silinmiş sekme sayfasına başvurma denemesi"
|
||||
|
Loading…
Reference in New Issue
Block a user