summaryrefslogtreecommitdiff
path: root/mnv/runtime/doc/os_dos.txt
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-04 12:41:27 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-04 12:41:27 +0300
commit4f2d36194b4f299aa7509d815c07121039ea833b (patch)
treef3ded014bad3a4c76ff6a22b8726ebaab68c3d13 /mnv/runtime/doc/os_dos.txt
parent5b578e70c314723a3cde5c9bfc2be0bf1dadc93b (diff)
downloadProject-Tick-4f2d36194b4f299aa7509d815c07121039ea833b.tar.gz
Project-Tick-4f2d36194b4f299aa7509d815c07121039ea833b.zip
NOISSUE change uvim folder name to mnv
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'mnv/runtime/doc/os_dos.txt')
-rw-r--r--mnv/runtime/doc/os_dos.txt387
1 files changed, 387 insertions, 0 deletions
diff --git a/mnv/runtime/doc/os_dos.txt b/mnv/runtime/doc/os_dos.txt
new file mode 100644
index 0000000000..daa8fbc9bb
--- /dev/null
+++ b/mnv/runtime/doc/os_dos.txt
@@ -0,0 +1,387 @@
+*os_dos.txt* For MNV version 10.0. Last change: 2026 Feb 14
+
+
+ MNV REFERENCE MANUAL by Bram Moolenaar
+
+
+ *dos* *DOS*
+This file documents the common particularities of the MS-DOS and Win32
+versions of MNV. Also see |os_win32.txt| and |os_msdos.txt|.
+
+1. File locations |dos-locations|
+2. Using backslashes |dos-backslash|
+3. Standard mappings |dos-standard-mappings|
+4. Screen output and colors |dos-colors|
+5. File formats |dos-file-formats|
+6. :cd command |dos-:cd|
+7. Interrupting |dos-CTRL-Break|
+8. Temp files |dos-temp-files|
+9. Shell option default |dos-shell|
+10. PowerShell |dos-powershell|
+
+==============================================================================
+1. File locations *dos-locations*
+
+If you keep the MNV executable in the directory that contains the help and
+syntax subdirectories, there is no need to do anything special for MNV to
+work. No registry entries or environment variables need to be set. Just make
+sure that the directory is in your search path, or use a shortcut on the
+desktop.
+
+Your mnvrc files ("_mnvrc" and "_gmnvrc") are normally located one directory
+up from the runtime files. If you want to put them somewhere else, set the
+environment variable $MNV to the directory where you keep them. Example: >
+ set MNV=C:\user\piet
+Will find "c:\user\piet\_mnvrc".
+Note: This would only be needed when the computer is used by several people.
+Otherwise it's simpler to keep your _mnvrc file in the default place.
+
+If you move the executable to another location, you also need to set the $MNV
+environment variable. The runtime files will be found in "$MNV/mnv{version}".
+Example: >
+ set MNV=E:\mnv
+Will find the version 8.2 runtime files in "e:\mnv\mnv82".
+Note: This is _not_ recommended. The preferred way is to keep the executable
+in the runtime directory.
+
+If you move your executable AND want to put your "_mnvrc" and "_gmnvrc" files
+somewhere else, you must set $MNV to where you mnvrc files are, and set
+$MNVRUNTIME to the runtime files. Example: >
+ set MNV=C:\usr\piet
+ set MNVRUNTIME=E:\mnv\mnv82
+Will find "c:\user\piet\_mnvrc" and the runtime files in "e:\mnv\mnv82".
+
+See |$MNV| and |$MNVRUNTIME| for more information.
+
+You can set environment variables for each user separately through the
+System Properties dialog box. The steps to do that:
+1. Type Windows Key + R to open the "Run" dialog box.
+2. Enter "sysdm.cpl" and press the "OK" button. The "System Properties"
+ dialog box will open.
+3. Select the "Advanced" tab and press the "Environment Variables..." button.
+ The "Environment Variables" dialog box will open.
+4. Select an existing variable in the "User variables" list and press the
+ "Edit..." button to edit it. Or press the "New..." button to add a new
+ variable.
+5. After you finished editing variables, press the "OK" button to save the
+ changes.
+
+==============================================================================
+2. Using backslashes *dos-backslash*
+
+Using backslashes in file names can be a problem. Vi halves the number of
+backslashes for some commands. MNV is a bit more tolerant and does not remove
+backslashes from a file name, so ":e c:\foo\bar" works as expected. But when
+a backslash occurs before a special character (space, comma, backslash, etc.),
+MNV removes the backslash. Use slashes to avoid problems: ":e c:/foo/bar"
+works fine. MNV replaces the slashes with backslashes internally to avoid
+problems with some MS-DOS programs and Win32 programs.
+
+When you prefer to use forward slashes, set the 'shellslash' option. MNV will
+then replace backslashes with forward slashes when expanding file names. This
+is especially useful when using a Unix-like 'shell'.
+
+==============================================================================
+3. Standard mappings *dos-standard-mappings*
+
+The mappings for CTRL-PageUp and CTRL-PageDown have been removed, they now
+jump to the next or previous tab page |<C-PageUp>| |<C-PageDown>|
+
+If you want them to move to the first and last screen line you can use these
+mappings:
+
+key key code Normal/Visual mode Insert mode ~
+CTRL-PageUp <M-N><M-C-D> H <C-O>H
+CTRL-PageDown <M-N>v L$ <C-O>L<C-O>$
+
+Additionally, these keys are available for copy/cut/paste. In the Win32
+and DJGPP versions, they also use the clipboard.
+
+Shift-Insert paste text (from clipboard) *<S-Insert>*
+CTRL-Insert copy Visual text (to clipboard) *<C-Insert>*
+CTRL-Del cut Visual text (to clipboard) *<C-Del>*
+Shift-Del cut Visual text (to clipboard) *<S-Del>*
+CTRL-X cut Visual text (to clipboard)
+
+These mappings accomplish this (Win32 and DJGPP versions of MNV):
+
+key key code Normal Visual Insert ~
+Shift-Insert <M-N><M-T> "*P "-d"*P <C-R><C-O>*
+CTRL-Insert <M-N><M-U> "*y
+Shift-Del <M-N><M-W> "*d
+CTRL-Del <M-N><M-X> "*d
+CTRL-X <C-X> "*d
+
+Or these mappings (non-Win32 version of MNV):
+
+key key code Normal Visual Insert ~
+Shift-Insert <M-N><M-T> P "-dP <C-R><C-O>"
+CTRL-Insert <M-N><M-U> y
+Shift-Del <M-N><M-W> d
+CTRL-Del <M-N><M-X> d
+
+When the clipboard is supported, the "* register is used.
+
+==============================================================================
+4. Screen output and colors *dos-colors*
+
+The default output method for the screen is to use bios calls. This works
+right away on most systems. You do not need ansi.sys. You can use ":mode" to
+set the current screen mode. See |:mode|.
+
+To change the screen colors that MNV uses, you can use the |:highlight|
+command. The Normal highlight group specifies the colors MNV uses for normal
+text. For example, to get grey text on a blue background: >
+ :hi Normal ctermbg=Blue ctermfg=grey
+See |highlight-groups| for other groups that are available.
+
+A DOS console does not support attributes like bold and underlining. You can
+set the color used in five modes with nine terminal options. Note that this
+is not necessary since you can set the color directly with the ":highlight"
+command; these options are for backward compatibility with older MNV versions.
+The 'highlight' option specifies which of the five modes is used for which
+action. >
+
+ :set t_mr=^V^[\|xxm start of invert mode
+ :set t_md=^V^[\|xxm start of bold mode
+ :set t_me=^V^[\|xxm back to normal text
+
+ :set t_so=^V^[\|xxm start of standout mode
+ :set t_se=^V^[\|xxm back to normal text
+
+ :set t_us=^V^[\|xxm start of underline mode
+ :set t_ue=^V^[\|xxm back to normal text
+
+ :set t_ZH=^V^[\|xxm start of italics mode
+ :set t_ZR=^V^[\|xxm back to normal text
+
+^V is CTRL-V
+^[ is <Esc>
+You must replace xx with a decimal code, which is the foreground color number
+and background color number added together:
+
+COLOR FOREGROUND BACKGROUND ~
+Black 0 0
+DarkBlue 1 16
+DarkGreen 2 32
+DarkCyan 3 48
+DarkRed 4 64
+DarkMagenta 5 80
+Brown, DarkYellow 6 96
+LightGray 7 112
+DarkGray 8 128 *
+Blue, LightBlue 9 144 *
+Green, LightGreen 10 160 *
+Cyan, LightCyan 11 176 *
+Red, LightRed 12 192 *
+Magenta, LightMagenta 13 208 *
+Yellow, LightYellow 14 224 *
+White 15 240 *
+
+* Depending on the display mode, the color codes above 128 may not be
+ available, and code 128 will make the text blink.
+
+When you use 0, the color is reset to the one used when you started MNV
+(usually 7, lightgray on black, but you can override this. If you have
+overridden the default colors in a command prompt, you may need to adjust
+some of the highlight colors in your mnvrc---see below).
+This is the default for t_me.
+
+The defaults for the various highlight modes are:
+ t_mr 112 reverse mode: Black text (0) on LightGray (112)
+ t_md 15 bold mode: White text (15) on Black (0)
+ t_me 0 normal mode (revert to default)
+
+ t_so 31 standout mode: White (15) text on DarkBlue (16)
+ t_se 0 standout mode end (revert to default)
+
+ t_ZH 225 italic mode: DarkBlue text (1) on Yellow (224)
+ t_ZR 0 italic mode end (revert to default)
+
+ t_us 67 underline mode: DarkCyan text (3) on DarkRed (64)
+ t_ue 0 underline mode end (revert to default)
+
+These colors were chosen because they also look good when using an inverted
+display, but you can change them to your liking.
+
+Example: >
+ :set t_mr=^V^[\|97m " start of invert mode: DarkBlue (1) on Brown (96)
+ :set t_md=^V^[\|67m " start of bold mode: DarkCyan (3) on DarkRed (64)
+ :set t_me=^V^[\|112m " back to normal mode: Black (0) on LightGray (112)
+
+ :set t_so=^V^[\|37m " start of standout mode: DarkMagenta (5) on DarkGreen
+ (32)
+ :set t_se=^V^[\|112m " back to normal mode: Black (0) on LightGray (112)
+
+==============================================================================
+5. File formats *dos-file-formats*
+
+If the 'fileformat' option is set to "dos" (which is the default), MNV accepts
+a single <NL> or a <CR><NL> pair for end-of-line (<EOL>). When writing a
+file, MNV uses <CR><NL>. Thus, if you edit a file and write it, MNV replaces
+<NL> with <CR><NL>.
+
+If the 'fileformat' option is set to "unix", MNV uses a single <NL> for <EOL>
+and shows <CR> as ^M.
+
+You can use MNV to replace <NL> with <CR><NL> by reading in any mode and
+writing in Dos mode (":se ff=dos").
+You can use MNV to replace <CR><NL> with <NL> by reading in Dos mode and
+writing in Unix mode (":se ff=unix").
+
+MNV sets 'fileformat' automatically when 'fileformats' is not empty (which is
+the default), so you don't really have to worry about what you are doing.
+
+If you want to edit a script file or a binary file, you should set the
+'binary' option before loading the file. Script files and binary files may
+contain single <NL> characters which MNV would replace with <CR><NL>. You can
+set 'binary' automatically by starting MNV with the "-b" (binary) option.
+
+==============================================================================
+6. :cd command *dos-:cd*
+
+The ":cd" command recognizes the drive specifier and changes the current
+drive. Use ":cd c:" to make drive C the active drive. Use ":cd d:\foo" to go
+to the directory "foo" in the root of drive D. MNV also recognizes UNC names
+if the system supports them; e.g., ":cd \\server\share\dir". |:cd|
+
+==============================================================================
+7. Interrupting *dos-CTRL-Break*
+
+Use CTRL-Break instead of CTRL-C to interrupt searches. MNV does not detect
+the CTRL-C until it tries to read a key.
+
+==============================================================================
+8. Temp files *dos-temp-files*
+
+Only for the 16 bit and 32 bit DOS version:
+MNV puts temporary files (for filtering) in the first of these directories
+that exists and in which MNV can create a file:
+ $TMP
+ $TEMP
+ C:\TMP
+ C:\TEMP
+ current directory
+
+For the Win32 version (both console and GUI):
+MNV uses standard Windows functions to obtain a temporary file name (for
+filtering). The first of these directories that exists and in which MNV can
+create a file is used:
+ $TMP
+ $TEMP
+ current directory
+
+==============================================================================
+9. Shell option default *dos-shell*
+
+The default for the 'sh' ('shell') option is "command.com" on Windows 95 and
+"cmd.exe" on Windows NT. If SHELL is defined, MNV uses SHELL instead, and if
+SHELL is not defined but COMSPEC is, MNV uses COMSPEC. MNV starts external
+commands with "<shell> /c <command_name>". Typing CTRL-Z starts a new command
+subshell. Return to MNV with "exit". 'shell' |CTRL-Z|
+
+If you are running a third-party shell, you may need to set the
+'shellcmdflag' ('shcf') and 'shellquote' ('shq') or 'shellxquote'
+('sxq') options. Unfortunately, this also depends on the version of MNV used.
+For example, with the MKS Korn shell or with bash, the values of the options
+should be:
+
+ DOS 16 bit DOS 32 bit Win32 ~
+'shellcmdflag' -c -c -c
+'shellquote' "
+'shellxquote' "
+
+For Dos 16 bit this starts the shell as: >
+ <shell> -c "command name" >file
+For Win32 as: >
+ <shell> -c "command name >file"
+For DOS 32 bit, DJGPP does this internally somehow.
+
+When starting up, if MNV does not recognise a standard Windows shell it checks
+for the presence of "sh" anywhere in the 'shell' option. If it is present,
+MNV sets the 'shellcmdflag' and 'shellquote' or 'shellxquote' options will be
+set as described above.
+
+==============================================================================
+10. PowerShell *dos-powershell* *dos-pwsh*
+
+MNV supports PowerShell Desktop and PowerShell Core. PowerShell Desktop is
+the version of PowerShell that is installed with Windows, while PowerShell
+Core is a separate downloadable version that works cross-platform. To see
+which version you are using then enter the following in a PowerShell prompt -
+$PSVersionTable.PSEdition
+
+If 'shell' includes "powershell" in the filename at startup then MNV sets
+'shellcmdflag', 'shellxquote', 'shellpipe', and 'shellredir' options to the
+following values:
+
+'shellcmdflag' -Command
+'shellxquote' "
+'shellpipe' 2>&1 | Out-File -Encoding default
+'shellredir' 2>&1 | Out-File -Encoding default
+
+If 'shell' includes "pwsh" in the filename at startup then MNV sets
+'shellcmdflag', 'shellxquote', 'shellpipe', and 'shellredir' options to the
+following values:
+
+'shellcmdflag' -c
+'shellxquote' "
+'shellpipe' >%s 2>&1
+'shellredir' >%s 2>&1
+
+Note: those options are only set after reading the |.mnvrc| file, in
+particular setting the 'shell' option via |-c| is too late to take effect for
+the other shell related settings. Consider using |--cmd| to override this
+option via the command line.
+
+If you find that PowerShell commands are taking a long time to run then try
+with "-NoProfile" at the beginning of the 'shellcmdflag'. Note this will
+prevent any PowerShell environment setup by the profile from taking place.
+
+If you have problems running PowerShell scripts through the 'shell' then try
+with "-ExecutionPolicy RemoteSigned -Command" at the beginning of
+'shellcmdflag'. See online Windows documentation for more information on
+PowerShell Execution Policy settings.
+
+See |option-backslash| about including spaces in 'shellcmdflag' when using
+multiple flags.
+
+The 'shellpipe' and 'shellredir' option values re-encode the UTF-16LE output
+from PowerShell Desktop to your currently configured console codepage. The
+output can be forced into a different encoding by changing "default" to one of
+the following:
+
+ unicode - UTF-16LE (default output from PowerShell 5.1)
+ bigendianunicode - UTF-16
+ utf8 - UTF-8
+ utf7 - UTF-7 (no BOM)
+ utf32 - UTF-32
+ ascii - 7-bit ASCII character set
+ default - System's active code page (typically ANSI)
+ oem - System's current OEM code page
+
+Note The above multi-byte Unicode encodings include a leading BOM unless
+otherwise indicated.
+
+By default PowerShell Core's output is UTF-8 encoded without a BOM. If you
+want to force the output of PowerShell Core into a different encoding then set
+'shellredir' and 'shellpipe' to "2>&1 | Out-File -Encoding encoding" where
+encoding is one of the following:
+
+ ascii - 7-bit ASCII character set
+ bigendianunicode - UTF-16BE
+ bigendianutf32 - UTF-32BE
+ oem - System's current OEM code page
+ unicode - UTF-16LE
+ utf7 - UTF-7
+ utf8 - UTF-8
+ utf8BOM - UTF-8, with BOM
+ utf8NoBOM - UTF-8, no BOM (default output from PowerShell Core)
+ utf32 - UTF-32
+
+Since PowerShell Core 6.2, the Encoding parameter also supports specifying a
+numeric ID of a registered code page (-Encoding 1251) or string names of
+registered code pages (-Encoding "windows-1251"). The .NET documentation for
+Encoding.CodePage has more information
+
+ mnv:tw=78:ts=8:noet:ft=help:norl: