如何去掉VS Code 非ASCII黄边框
时间: 2024-09-12 17:02:26 浏览: 27
在VS Code中,非ASCII字符通常会有黄色的边框,这是为了帮助开发者识别非ASCII字符,比如非英文字符。如果你想要去掉这些黄色边框,可以通过修改VS Code的设置来实现。以下是步骤:
1. 打开VS Code。
2. 点击左上角的“文件”菜单,选择“首选项”,然后选择“设置”(或者直接使用快捷键`Ctrl + ,`)。
3. 在设置搜索框中输入“nonascii”,这将帮助你快速找到相关的设置选项。
4. 在搜索结果中找到“Editor: Non ASCII Characters Highlighting”选项。
5. 点击该选项旁边的下拉菜单,将其设置为“off”。
完成以上步骤后,VS Code中的非ASCII字符黄色边框就会被去掉。此外,你也可以通过修改`settings.json`配置文件来实现这一点。在设置界面的右上角有一个`{}`图标,点击它,然后在打开的`settings.json`文件中添加或修改以下配置:
```json
"editor.nonceASCIICharactersHighlighting": "off"
```
保存文件后,更改即生效。
相关问题
在屏幕上显示一个表格,表格边框,背景颜色等自定·。在DoxBox上经masm汇编实现以上功能,并解释每行代码的含义
好的,我可以帮你回答这个问题。
首先,需要说明的是,DoxBox是一个模拟DOS环境的软件,masm是一款汇编语言编译器,因此在DoxBox上使用masm汇编编写程序,需要先安装masm。
下面是一个实现在屏幕上显示一个表格的汇编代码,代码注释中会解释每行代码的含义:
```
.model small
.stack 100h
.data
; 定义表格的数据
table db '+--------+',13,10
db '| |',13,10
db '+--------+',13,10
db '| |',13,10
db '+--------+',13,10
db '| |',13,10
db '+--------+',13,10
db '| |',13,10
db '+--------+',13,10
db '| |',13,10
db '+--------+',13,10
.code
mov ax, @data
mov ds, ax
; 设置屏幕颜色和光标位置
mov ah, 06h
mov al, 0
mov bh, 0
mov ch, 0
mov cl, 0
mov dh, 24
mov dl, 79
int 10h
; 显示表格数据
mov si, offset table
mov ah, 09h
mov bh, 0
next:
mov al, [si]
cmp al, '$'
je exit
int 10h
inc si
jmp next
exit:
mov ah, 4ch
int 21h
end
```
这个程序的实现方式是通过在数据段中定义表格的数据,并通过中断调用来显示在屏幕上。
首先定义了一个数据段,指定了栈的大小。然后在数据段中定义了表格的数据,包括边框和内部的空白部分。这里使用了ASCII码来表示字符。
在代码段中,首先将数据段的地址存入AX寄存器,再将AX的值存入DS寄存器中,这样程序就可以访问数据段中的数据了。
然后使用中断调用来设置屏幕颜色和光标位置。这里使用的是INT 10H中断,AH=06H表示设置光标位置,AH=00H表示设置屏幕颜色。
最后使用循环和中断调用来显示表格的数据。使用INT 10H中断,AH=09H表示显示字符串。
最后使用INT 21H中断,AH=4CH表示程序结束。
希望这个回答能够帮到你,如果有其他问题,请随时提出。
在屏幕上输出一个由+组成的表格,表格边框,背景颜色等自定。在DosBox环境下用汇编语言实现以上功能并解释每一段代码的含义
好的,这是您的第一个问题,那我来回答:
以下是在DosBox环境下用汇编语言实现输出由+组成的表格的代码,该表格有边框、背景颜色等自定:
```assembly
.MODEL SMALL
.STACK 100h
.DATA
ROWS DB 10 ;表格的行数
COLS DB 20 ;表格的列数
BG_COLOR DB 01 ;表格的背景颜色
BORDER DB 178 ;表格的边框字符
ROW DB 196 ;表格的行分隔符
.CODE
.STARTUP
MOV AX, @DATA
MOV DS, AX
;输出表格的顶部边框
MOV AH, 02h ;调用DOS中断21h的功能2
MOV DL, BORDER ;设置要输出的字符
INT 21h ;输出字符
MOV CX, COLS ;设置循环次数
DEC CX ;减去1,因为第一个字符已经输出了
TOP_LOOP:
INT 21h ;输出字符
LOOP TOP_LOOP ;循环
;输出表格的内部内容
MOV CX, ROWS ;设置循环次数
DEC CX ;减去1,因为顶部边框已经输出了
ROW_LOOP:
;输出行分隔符
MOV AH, 02h
MOV DL, ROW
INT 21h
;输出行内内容
MOV CX, COLS
DEC CX ;减去1,因为行分隔符已经占用了一个字符
COL_LOOP:
;设置背景颜色
MOV AH, 06h
MOV AL, 00h ;设置要修改的页面
MOV BH, BG_COLOR ;设置背景颜色
INT 10h ;修改背景颜色
;输出空格
MOV AH, 02h
MOV DL, ' '
INT 21h
LOOP COL_LOOP
;换行
MOV AH, 02h
MOV DL, 0Dh
INT 21h
MOV DL, 0Ah
INT 21h
LOOP ROW_LOOP
;输出表格的底部边框
MOV AH, 02h
MOV DL, BORDER
INT 21h
MOV CX, COLS
DEC CX
BOTTOM_LOOP:
INT 21h
LOOP BOTTOM_LOOP
.EXIT
END
```
代码解释:
1. 模型定义:`.MODEL SMALL` 声明使用小模型(64KB内存)。
2. 栈空间定义:`.STACK 100h` 声明栈空间大小为100H(256字节)。
3. 数据段定义:`.DATA` 声明以下内容在数据段中。
4. `ROWS DB 10` 定义行数为10。
5. `COLS DB 20` 定义列数为20。
6. `BG_COLOR DB 01` 定义背景颜色为01(黑色)。
7. `BORDER DB 178` 定义边框字符为178。
8. `ROW DB 196` 定义行分隔符为196。
9. 代码段定义:`.CODE` 声明以下内容在代码段中。
10. 启动代码定义:`.STARTUP` 声明以下内容为启动代码。
11. `MOV AX, @DATA` 将数据段地址存入AX寄存器。
12. `MOV DS, AX` 将AX寄存器的值存入DS寄存器,以便使用数据段中的变量。
13. 输出表格顶部边框:`MOV AH, 02h` 设置DOS中断21h的功能号为02h(输出字符)。
14. `MOV DL, BORDER` 将边框字符的ASCII码存入DL寄存器。
15. `INT 21h` 调用DOS中断21h,输出字符。
16. `MOV CX, COLS` 将列数存入CX寄存器。
17. `DEC CX` 将CX寄存器的值减去1,因为第一个字符已经输出了。
18. `TOP_LOOP: INT 21h` 循环输出字符。
19. `LOOP TOP_LOOP` 循环指令,当CX寄存器的值不为0时,跳转到TOP_LOOP标签处,继续循环。
20. 输出表格内部内容:`MOV CX, ROWS` 将行数存入CX寄存器。
21. `DEC CX` 将CX寄存器的值减去1,因为顶部边框已经输出了。
22. `ROW_LOOP:` 标签。
23. `MOV AH, 02h` 设置DOS中断21h的功能号为02h(输出字符)。
24. `MOV DL, ROW` 将行分隔符的ASCII码存入DL寄存器。
25. `INT 21h` 调用DOS中断21h,输出行分隔符。
26. `MOV CX, COLS` 将列数存入CX寄存器。
27. `DEC CX` 将CX寄存器的值减去1,因为行分隔符已经占用了一个字符。
28. `COL_LOOP:` 标签。
29. `MOV AH, 06h` 设置DOS中断10h的功能号为06h(修改背景颜色)。
30. `MOV AL, 00h` 设置要修改的页面为0。
31. `MOV BH, BG_COLOR` 设置背景颜色。
32. `INT 10h` 调用DOS中断10h,修改背景颜色。
33. `MOV AH, 02h` 设置DOS中断21h的功能号为02h(输出字符)。
34. `MOV DL, ' '` 设置要输出的字符为空格。
35. `INT 21h` 调用DOS中断21h,输出字符。
36. `LOOP COL_LOOP` 循环指令,当CX寄存器的值不为0时,跳转到COL_LOOP标签处,继续循环。
37. `MOV AH, 02h` 设置DOS中断21h的功能号为02h(输出字符)。
38. `MOV DL, 0Dh` 设置要输出的字符为回车符。
39. `INT 21h` 调用DOS中断21h,输出字符。
40. `MOV DL, 0Ah` 设置要输出的字符为换行符。
41. `INT 21h` 调用DOS中断21h,输出字符。
42. `LOOP ROW_LOOP` 循环指令,当CX寄存器的值不为0时,跳转到ROW_LOOP标签处,继续循环。
43. 输出表格底部边框:`MOV AH, 02h` 设置DOS中断21h的功能号为02h(输出字符)。
44. `MOV DL, BORDER` 将边框字符的ASCII码存入DL寄存器。
45. `INT 21h` 调用DOS中断21h,输出字符。
46. `MOV CX, COLS` 将列数存入CX寄存器。
47. `DEC CX` 将CX寄存器的值减去1,因为第一个字符已经输出了。
48. `BOTTOM_LOOP:` 标签。
49. `INT 21h` 循环输出字符。
50. `LOOP BOTTOM_LOOP` 循环指令,当CX寄存器的值不为0时,跳转到BOTTOM_LOOP标签处,继续循环。
51. `.EXIT` 程序结束。
52. `END` 程序结束。
阅读全文