Ubuntu常用快捷键

article/2025/9/18 0:51:12

一、 打开Terminal的快捷键是Ctrl+Alt+T

二、 中止运行Ctrl+C

一般最常用的是cd, ls, mkdir, rmdir, cp, rm, mv, clear, pwd, shutdown.
一般使用时只需记住常用命令,不清楚的时候用man查询。如需查看更多命令可以阅读《The Linux Command Line》(《Linux命令行大全》)。

三、常用快捷键

四、Unix/Linux命令参考

五、vim入门 

在vim中,获得帮助的命令是:help
如果不知道自己想查什么,可以运行:help user-manual查看整个用户手册的目录。
如果大概知道想使用的功能而不知道具体命令,可以使用:helpgrep在整个文档中搜索相关内容。比如想了解如何查看词首,可以运行:helpgrep beginning of a word。可以使用:cnext:cprev在搜索结果间跳转。
更多关于帮助的帮助,参看《A Byte of Vim》中Vim en:Help这一节。 

六、vim自定义配置

基本操作熟练之后,多半都会开始安插件折腾自定义配置。
自定义配置与插件包括vimrc、global plugin、filetype plugin、syntax highlighting plugin、compiler plugin。
一般将简单配置记录在vimrc文件里,高级功能使用插件来实现。

在Linux系统中,vimrc文件地址是$HOME/.vimrc。vim安装时自带的插件在$VIMRUNTIME/plugin/目录下。自定义插件放在$HOME/.vim/plugin/的相应子目录下,且需在vimrc文件里设置自动加载此插件。
详细的配置与插件使用及编写请参看《A Byte of Vim》中Vim en:Plugins这一节。

偷了个懒,在github上发现一个很棒的配置方案spf13-vim,就直接安上了。
spf13-vim是运行在vim层之上,为方便编程,对vimrc和plugin都做了很多特殊优化配置的一个工具。
spf13-vim。安装很容易,根据readme上的指示进行即可。

安装成功后,可以打开~/.vimrc看到spf13-vim的预置配置。创建~/.vimrc.local~/.gvimrc.local进行自定义配置。
spf13-vim已经预置了很多插件,关于这些插件的启动和使用可以看spf13-vim的介绍和这些插件自己的github页面。此处唯一提醒的一点是<leader>键在spf13-vim这里是逗号,
我目前也在摸索中,有心得会随时更新。这是我的操作速查表。

在Quora上看到有些人并不推荐使用spf13等工具,认为会引诱你学习这个工具的配置方式,而不是真正学习vim的配置文件,使用自定义的针对自己需求的配置文件才最符合vim精神。不过对于初学者来说,我觉得spf13-vim还是很有价值的

七、C++编译工具

gcc常用命令

基本语法格式如下。
对于C:gcc [options] [filenames]
对于C++:g++ [options] [filenames]
上述命令行按编译选项(options)指定的操作对给定的文件(filenames)进行编译处理

选项主要列表如下。

选项选项描述
-c只对文件进行编译和汇编,但不进行连接,生成目标文件”.o”
-S只对文件进行编译,但不汇编和连接
-E只对文件进行预处理,但不编译汇编和连接
-g在可执行程序中包含标准调试信息
-o file1 [file2]将文件file1编译成可执行文件file2
-v打印出编译器内部编译各过程的命令行信息和编译器的版本
-I dir在头文件的搜索路径列表中添加dir目录
-L dir在库文件的搜索路径列表中添加dir目录
-static强制链接静态库
-lNAME连接名为libNAME的库文件
-Wall -W开启GCC最常用的警告,GCC的warning一般格式为file:line-number:message
-pedantic要求严格符合ANSI标准
-Wconversion开启隐式类型转换警告
-Wshadow开启同名变量函数警告
-Wcast-qual开启对特性移除的cast的警告,如const
-O(-O1)对编译出的代码进行优化
-O2进行比-O高一级的优化
-O3产生更高级别的优化
-Os产生最小的可执行文件
-pg开启性能测试,记录每个函数的调用次数与时长
-ftest-coverage记录每一行被执行的次数
-fprofile-arcs记录每个分支语句执行的频率

显示详细信息

 注意选项的大小写。只在最后发行版时再使用优化。即使在最后发行版也应该加上-g选项。

编译单个文件为可执行文件:

g++ -Wall -W hello.cpp -o hello

编译多个文件为可执行文件:

g++ -Wall -W main.cpp hello_fun.cpp -o newhello

编译单个文件为可执行文件,连接静态库static library:

系统默认库文件在目录/usr/lib/lib,还会自动搜索/usr/local/lib//usr/lib/
相应的,系统默认头文件在目录,会自动搜索/usr/local/include//usr/include/
显式指定库目录与文件,g++ -Wall -W calc.cpp /usr/lib/libm.a -o calc
或更好的写法g++ -Wall -W -static calc.cpp -lm -o calc,连接系统自动搜索库目录里的库文件。注意g++优先使用shared library。如果找到同名.so就不会用同名.a。所以如果需要强制使用.a文件的话,应使用-static
如果不在自动搜索的库目录,两种方法。一般使用命令行这一种。

  • 使用命令行-I添加搜索头文件的目录和-L添加搜索库文件的目录,例如g++ -Wall -W -static -I/code/test/include -I/code/another/include -I. -L/code/test/lib -L/code/another/lib -L. calc.cpp -ltest。.表示当前目录。
  • 或使用环境变量C_INCLUDE_PATH(C)或CPLUS_INCLUDE_PATH(C++)和LIBRARY_PATH。用如下语句添加搜索路径,之后就可以使用g++ -Wall -W -static calc.cpp -ltest了。
    1
    2
    3
    4
    
    CPLUS_INCLUDE_PATH = /code/test/include:/code/another/include:.:$CPLUS_INCLUDE_PATH
    export CPLUS_INCLUDE_PATH
    LIBRARY_PATH = /code/test/lib:/code/another/lib:.:$LIBRARY_PATH
    export LIBRARY_PATH
    

编译单个文件为可执行文件,连接共享库shared library:

如果只是用了系统默认库,g++ -Wall -W calc.cpp -lm -o calc
除了前文系统自动搜索库文件目录之外,如果要添加其他共享库目录,必须在环境变量LD_LIBRARY_PATH中添加路径。

1
2
LD_LIBRARY_PATH = /code/test/lib:/code/another/lib:.:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

之后可以使用g++ -Wall -W calc.cpp /usr/lib/libm.so -o calcg++ -Wall -W -I/code/test/include -I/code/another/include -I. -L/code/test/lib -L/code/another/lib -L. calc.cpp -ltest
使用ldd calc可以查看该可执行文件依赖哪些.so。

编译多个文件为静态库文件.a:

将多个.o文件集合为一个静态库文件.a。其中cr表示”create and replace”。

1
2
3
g++ -Wall -c hello_fn.cpp
g++ -Wall -c bye_fn.cpp
ar cr libhello.a hello_fn.o bye_fn.o

可以查看一个.a文件里包含哪些.o。使用ar t libhello.a

编译多个文件为共享库文件.so:

g++ x.cpp y.cpp z.cpp -fPIC -shared -o libtest.so。其中-fPIC表示编译为位置独立的代码。

预处理

可以用gcc选项定义宏,-DNAME会定义一个名为NAME的宏。如g++ -Wall -DTEST dtest.cpp,定义了名为TEST的宏。定义的宏会对代码产生影响。
也可以为宏定义值,-DNAME=VALUE。如g++ -Wall -DNUM=100 dtestval.cppg++ -Wall -DNUM="2+2" dtestval.cppg++ -Wall -DMESSAGE="\"Hello,World!\"" dteststr.cpp。在代码中把宏用括号括起来是好习惯。

性能

开启-pg选项生成可执行文件后。首先正常运行一次可执行文件./hello,然后运行gprof hello查看数据。
开启-fprofile-arcs -ftest-coverage选项生成可执行文件后。首先正常运行一次可执行文件./hello,然后运行gcov hello.cpp查看数据。未被执行的语句会在.gcov文件中标记上-,可以通过执行grep '-' *.gcov查找未被执行的语句。

makefile文件

对于较大的工程,如果还像前文一样写命令行就太痛苦了。而使用makefile可以管理整个工程的编译规则,之后用一个make命令就可自动编译,相对方便很多。

推荐书籍《跟我一起写Makefile》和官方文档。内容看起来还是很晦涩…(・-・*)还好现在有了自动化工具,用来自动生成的工具也可以用工具自动生成了。

最基础的用法

makefile基本规则是:

target1 target2 target3: prerequisite1 prerequisite2
command1
command2

其中target是目标文件。prerequisites是要生成target所需文件或目标。command是make需要执行的命令。规则表示了一个文件的依赖关系,即target依赖于prerequisites,生成规则为command。如果target不存在或prerequisites中至少一个文件比target新的话,command定义的命令就会执行。这就是makefile中最核心的内容。

make工作的流程是:
当我们输入make命令之后,

  1. 读入所有的makefile文件。
  2. 读入被include包括的其他makefile文件。
  3. 初始化文件中的变量。
  4. 推导隐式规则,分析所有规则。
  5. 为所有的目标文件创建依赖关系链。
  6. 根据依赖关系,决定哪些目标要重新生成。
  7. 执行生成命令。

makefile文件名应为Makefilemakefile

小示例

我为自己刷题的一个小项目写了一个将几个目录下所有的源文件一起编译的一个makefile。在这里看工程的目录结构。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
EXEC = MyLeetCode
SRC_DIR = ../../catch ../../include ../../src
SOURCES := $(foreach x, ${SRC_DIR},\$(wildcard \$(addprefix ${x}/*,.cpp)))
OBJECTS = $(SOURCES:.cpp=.o)
CXX = g++
CXXFLAGS = -I../../catch -I../../include -I../../src -std=c++11
$(EXEC): $(OBJECTS)$(CXX) -o $@ $^
.PHONY : clean
clean:$(RM) $(OBJECTS)$(RM) $(EXEC)

网上看到一个Generic Makefile for C/C++ Program。

八、使用CMake自动生成makefile

当处理较大型的项目时,手动书写makefile就比较痛苦,这时用来用来自动化自动化工具makefile的自动化工具就是CMake。不过天下哪有那么便宜的事,它也是要写自己的CMakeLists.txt的。
推荐书籍《CMake实践》《Mastering CMake》和官网帮助。

简介

CMake是一个跨平台的自动化建构系统,它是用一个名为CMakeLists.txt的文件来描述构建过程,可以产生标准的构建文件,如Unix的makefile或Windows Visual Studio的projects/workspaces。
文件CMakeLists.txt需要手工编写,也可以通过编写脚本进行半自动的生成。

在Linux平台下使用CMake生成makefile并编译的流程如下:

  1. 安装CMake。在Ubuntu上安装cmake很简单$sudo apt-get install cmake。如果想要其Qt图形界面另需安装sudo apt-get install cmake-qt-gui。一般不需要,在Ubuntu系统上用ccmake就可以了。
  2. 编写CMakeLists.txt。
  3. 运行CMake。用cd将当前目录设为生成目标目录,执行命令ccmake srcdir(文字界面)或cmake -i(交互命令行),如果想使用Qt图形界面使用cmake-gui
  4. Makefile已经生成。使用make命令进行编译。
  5. 如果想清理工程。使用make clean

简单语法
注释:#
命令语法:COMMAND(参数1 参数2 ...)
字符串列表:A;B;CA B C。分号或空格分隔的值。
变量(字符串或字符串列表):

set(Foo a b c)设置变量Foo。
command(${Foo})等价于command(a b c)
command("${Foo}")等价于command("a b c")
command("/${Foo}")转义,和a b c无关联。

流控制结构:

IF()...ELSE()/ELSEIF()...ENDIF()
WHILE()...ENDWHILE()
FOREACH()...ENDFOREACH()

正则表达式:

常用命令总结

命令意义
INCLUDE_DIRECTORIES( “dir1” “dir2” … )头文件路径,相当于编译器参数 -Idir1 -Idir2
AUX_SOURCE_DIRECTORY( “sourcedir” variable)收集目录中的文件名并赋值给变量
ADD_EXECUTABLE可执行程序目标
ADD_LIBRARY库目标
ADD_CUSTOM_TARGET自定义目标
ADD_DEPENDENCIES( target1 t2 t3 )目标target1依赖于t2 t3
ADD_DEFINITIONS( “-Wall -ansi”)本意是供设置 -D… /D… 等编译预处理需要的宏定义参数,对比 REMOVE_DEFINITIONS()
TARGET_LINK_LIBRARIES( target-name lib1 lib2 …)设置单个目标需要链接的库
LINK_LIBRARIES( lib1 lib2 …)设置所有目标需要链接的库
SET_TARGET_PROPERTIES( … )设置目标的属性 OUTPUT_NAME, VERSION, ….
MESSAGE(…)这个指令用于向终端输出用户定义的信息
INSTALL( FILES “f1” “f2”DESTINATION . )DESTINATION 相对于 ${CMAKE_INSTALL_PREFIX}
SET( VAR value [CACHE TYPE DOCSTRING [FORCE]])定义与修改变量
LIST( APPEND/INSERT/LENGTH/GET/REMOVE_ITEM/REMOVE_AT/SORT …)列表操作
STRING( TOUPPER/TOLOWER/LENGTH/SUBSTRING/REPLACE/REGEX …)字符串操作
SEPARATE_ARGUMENTS( VAR )转换空格分隔的字符串到列表
FILE( WRITE/READ/APPEND/GLOB/GLOB_RECURSE/REMOVE/MAKE_DIRECTORY …)文件操作
FIND_FILE注意 CMAKE_INCLUDE_PATH
FIND_PATH注意 CMAKE_INCLUDE_PATH
FIND_LIBRARY注意 CMAKE_LIBRARY_PATH
FIND_PROGRAM
FIND_PACKAGE注意 CMAKE_MODULE_PATH
EXEC_PROGRAM( bin [work_dir] ARGS <..> [OUTPUT_VARIABLE var] [RETURN_VALUE var] )执行外部程序
OPTION( OPTION_VAR “description” [initial value] )

显示详细信息

变量
工程路径

CMAKE_SOURCE_DIR PROJECT_SOURCE_DIR <projectname>_SOURCE_DIR表示工程顶层目录。
CMAKE_BINARY_DIR PROJECT_BINARY_DIR <projectname>_BINARY_DIR表示生成目标目录。
CMAKE_CURRENT_SOURCE_DIR表示当前处理的CMakeLists.txt所在的目录。
CMAKE_CURRRENT_BINARY_DIR表示当前处理的CMakeLists.txt的目标目录。
CMAKE_CURRENT_LIST_FILE输出调用这个变量的CMakeLists.txt的完整路径。

Debug和Release模式的构建

在CMakeList.txt文件中使用SET(CMAKE_BUILD_TYPE Debug)
或命令行参数cmake DCMAKE_BUILD_TYPE=Release

编译器参数

CMAKE_C_FLAGS CMAKE_CXX_FLAGS
也可以通过指令ADD_DEFINITIONS()添加。

包含路径

CMAKE_INCLUDE_PATH配合FIND_FILE()以及FIND_PATH()使用。如果头文件没有存放在常规路径(/usr/include, /usr/local/include等),则可以通过这些变量就行弥补。如果不使用FIND_FILEFIND_PATH的话,CMAKE_INCLUDE_PATH没有任何作用。
CMAKE_LIBRARY_PATH配合配合FIND_LIBRARY()使用。否则没有任何作用。
CMAKE_MODULE_PATHCMake为上百个软件包提供了查找器(finder):FindXXXX.cmake。当使用非CMake自带的finder时,需要指定finder的路径,这就是CMAKE_MODULE_PATH,配合FIND_PACKAGE()使用。

编写CMakeLists.txt的示例

对于如下的目录结构。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
+example
|
+--- CMakeList.txt
+--+ src/
|  |
|  +--- main.cpp
|  /--- CMakeList.txt
|
+--+ thirdparty/
|  |
|  +--- hello.h
|  +--- hello.cpp
|  /--- CMakeList.txt
|
/--+ build/

显示详细信息

多文件夹编译(手动)

将所有子文件夹中的源文件包含进来,然后生成。

在顶文件夹中example的CMakeLists.txt中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cmake_minimum_required(VERSION 2.6)
project(HELLO)
# include src
include(src/CMakeLists.txt)
foreach(FILE ${FILES})set(subdir1Files ${subdir1Files} src/${FILE})
endforeach(FILE)
# include thirdparty
include(thirdparty/CMakeLists.txt)
foreach(FILE ${FILES})set(subdir2Files ${subdir2Files} thirdparty/${FILE})
endforeach(FILE)
# add the source files to the executable
add_executable(hello ${subdir1Files} ${subdir2Files})

在src目录的CMakeLists.txt中:

1
2
# list the source files for this directory
set (FILES main.cpp)

在thirdparty目录的CMakeLists.txt中:

1
2
# list the source files for this directory
set(FILES hello.h hello.cpp)

多文件夹编译(自动)

和上一种方式一样,只不过是自动包含。

在顶文件夹中example的CMakeLists.txt中:

1
2
3
4
5
cmake_minimum_required(VERSION 2.6)
project(HELLO)
AUX_SOURCE_DIRECTORY(./thirdparty subdir1Files)
AUX_SOURCE_DIRECTORY(./src subdir2Files)
add_executable(hello ${subdir1Files} ${subdir2Files})

另一种多文件夹编译(自动)

也是将所有子文件夹中符合后缀的文件自动包含进来,然后生成。

在顶文件夹example中的CMakeLists.txt中:

1
2
3
4
5
6
cmake_minimum_required(VERSION 2.6)
FILE(GLOB_RECURSE SRC_LIST "${PROJECT_SOURCE_DIR}/thirdparty/*.cpp" "${PROJECT_SOURCE_DIR}/src/*.cpp")
FOREACH(src ${SRC_LIST})MESSAGE(${src})
ENDFOREACH()
add_executable(hello ${SRC_LIST})

多文件夹使用静态库

将thirdparty中的文件编译为一个静态库,由src中的另一个源文件在生成可执行文件时调用。

在顶文件夹中example的CMakeLists.txt中:

1
2
3
4
cmake_minimum_required(VERSION 2.6)
project(HELLO)
add_subdirectory(src)
add_subdirectory(thirdparty)

在src目录的CMakeLists.txt中:

1
2
3
4
5
#include_directories(${PROJECT_SOURCE_DIR}/thirdparty)
set(APP_SRC main.cpp)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
add_executable(hello ${APP_SRC})
target_link_libraries(hello hi)

在thirdparty目录的CMakeLists.txt中:

1
2
3
4
set(LIB_SRC hello.cpp)
add_library(hi ${LIB_SRC})
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
set_target_properties(hi PROPERTIES OUTPUT_NAME "hi")

多文件夹使用动态库

将thirdparty中的文件编译为一个动态库,由src中的另一个源文件在生成可执行文件时调用。
与之前静态库的区别是add_library时的参数,和兼顾平台的部分。

thirdparty目录中的hello.h文件添加WIN32平台的导入导出设置:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
using namespace std;
#if defined _WIN32#if LIBBUILD#define LIBHI_API __declspec(dllexport)#else#define LIBHI_API __declspec(dllimport)#endif
#else#define LIBHI_API
#endif
LIBHI_API void say_hello(string str);

在thirdparty目录的CMakeLists.txt中:

1
2
3
4
5
set(LIB_SRC hello.cpp)
add_definitions("-DLIBBUILD")
add_library(hi SHARED ${LIB_SRC})
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
set_target_properties(hi PROPERTIES OUTPUT_NAME "hi")

查找并使用其他程序库  为VS生成debug和release版

使用CMAKE_CXX_FLAGS_DEBUGCMAKE_CXX_FLAGS_RELEASE

以上文“多文件夹编译(自动)”为例,顶文件夹中example的CMakeLists.txt修改为:

1
2
3
4
5
6
7
cmake_minimum_required(VERSION 2.6)
project(HELLO)
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
AUX_SOURCE_DIRECTORY(./thirdparty subdir1Files)
AUX_SOURCE_DIRECTORY(./src subdir2Files)
add_executable(hello ${subdir1Files} ${subdir2Files})

在用ccmake生成时,图形界面会出现CMAKE_BUILD_TYPE的选项。根据不同选择会生成不同结果。


九、调试

gdb

gdb是一个用来调试C和C++程序的功能强大的调试器,能在程序运行时观察程序的内部结构和内存使用情况。
gdb主要提供以下功能:

  • 监视程序中变量的值的变化。
  • 设置断点,使程序在指定的代码行上暂停执行,便于观察。
  • 单步执行代码。
  • 分析崩溃程序产生的core文件。

推荐书籍《Debugging with GDB》[在线][下载pdf]。通过在gdb下输入help或在命令行上输入gdb h查看关于gdb选项说明的简单列表。键入help后跟命令的分类名。可以获得该类命令的详细清单。搜索和word相关的命令可用apropos word

为使gdb能正常工作,必须在程序编译时包含调试信息。即-g选项。前文有讲解。

简单的调试步骤示例

  1. 载入test可执行文件gdb test --silent
  2. 运行run
  3. 查看程序出错的地方where
  4. 查看出错函数附近的代码list
  5. 打开堆栈backtrace
  6. 单步调节nextstep
  7. 查看可疑表达式值print var
  8. 在可疑行打断点break 8
  9. 重新运行会在断点处停止。用set variable修改变量值。
  10. 继续运行continue。看结果是否正确。
  11. 退出gdbquit

常用命令介绍

Valgrind

Valgrind是一个工具集,其中最著名的就是可以检查内存泄露的Memcheck。
在ubuntu上安装Valgrind的命令sudo apt-get install valgrind
与gdb的要求相同,程序编译时需要有-g参数。
对于平时用myprog arg1 arg2启动的可执行文件,使用valgrind --leak-check=yes myprog arg1 arg2就可以开启内存检查,如果有错误会输出。

Valgrind命令的一般格式为valgrind [valgrind-options] your-prog [your-prog-options]
--tool=<toolname>可以选择当前运行的工具,默认即为memcheck。
--help显示帮助。


[1] ViEmu: vi-vim editor emulation for Visual Studio, Word, Outlook and SQL Server
[2] http://bbs.zol.com.cn/diybbs/d34450_19858.html
[3] http://4gamers.cn/blog/2014/06/19/make-your-vim-weapon/
[4] Vim Videos - Flarfnoogins
[5] http://www.phecda.org
[6] mit | vgod's blog
[7] spf13-vim - The Ultimate Vim Distribution
[8] http://ram.kossboss.com/spf13c/
[9] A Byte of Vim
[10] Vim Cheat Sheat for Programmers by Michael Pohoreski
[11] Linux环境编程
[12] Linux C编程一站式学习
[13] Linux环境下C编程指南
[14] An Introduction to GCC
[15] 跟我一起写Makefile
[16] Mastering CMake
[17] IBM Developer
[18] cmake的学习_imaging_新浪博客
[19] cmake 学习笔记(一)_dbzhang800的博客-CSDN博客_cmake学习
[20] cmake 学习笔记(二)_dbzhang800的博客-CSDN博客
[21] 用GDB调试程序
[22] GDB调试命令手册
[23] Debugging with GDB
[24] http://www.vingel.com/tools/reference/gdb-commands-list.png
[25] Valgrind - Ubuntu Wiki
[26] Valgrind
[27] Valgrind

(615条消息) Ubuntu常用快捷键_南叔先生的博客-CSDN博客_ubuntu快捷键


http://chatgpt.dhexx.cn/article/7ZFeXXnE.shtml

相关文章

excel设置行高和列宽

excel设置行高和列宽 1、CtrlA&#xff1a;全选 2、

DataGridView设置行高

DataGridView设置行高 DataGridView绑定数据源后修改行高的方法。 解决方案

Python 技术篇-使用xlwt库操作excel设置行高不生效问题解决方法

默认行高是和文字的高度进行匹配的&#xff0c;即 height_mismatch 的值是 False&#xff0c;这就导致了我们设置行高不会生效&#xff0c;我们要做的就是在设置某一行的高度之前&#xff0c;先把这个属性的值改为 True 就好了。 sheets.row("行索引").height_misma…

excel设置行高等于列宽_如何在Excel中设置行高和列宽

excel设置行高等于列宽 By default, when you create a new workbook in Excel, the row height and column width is always the same for all cells. However, you can easily change the height and width for one or more rows and columns. 默认情况下,当您在Excel中创建…

html怎样设置行高,HTML行高怎么设置

2 回答 2021-01-30 浏览:42 分类:网页设计 回答: 需要准备的材料分别有:电脑、浏览器、html编辑器。 1、首先,打开html编辑器,新建html文件,例如:index.html,编写问题基础代码。 2、在index.html中的标签中,输入样式代码:style="height:100px"。 3、浏览器…

ag-grid 设置行高

ag-gird 表格原生行高实在太宽,现在需要将行高缩小一点.以下将对表格的两种情况进行设置: 1.普通表格数据展示(无分组情况) 效果如图所示: 设置步骤: (1) .rowHeight:设置数据行行高;headerHeight设置表格表头行高, rowHeight: 28, // 设置表格行高headerHeight: 30, // 设置表…

Layui 设置行高

layui table设置单行高度以展示图片等 <style>.laytable-cell-1-PICTURE_SETTING_URL { /*PICTURE_SETTING_URL为表格字段的对应field*/height: 100%;max-width: 100%;} </style>

2.1.8设置行高

2.1.8设置行高 示例代码&#xff1a; package test.create.c02;import vita.ofd.layout.OfdDocument; import vita.ofd.layout.element.Paragraph; import vita.ofd.layout.element.paragraph.Text;/*** 展示如何设置行高* */ public class C0208SetLineHeight {public stati…

html页面行高静态设置,如何给HTML页面设置行高

如何给HTML页面设置行高 设置行高 由于简单还是老样子直接上代码了哦&#xff0c;注意&#xff1a;line-height属性值可以使用固定值如&#xff1a;20px..和百分比如&#xff1a;20%。 如果想让文字垂直居中如下&#xff1a;行高的主要作用是用来设置文本的垂直方向居中对齐行高…

html调整行高,html设置行高 html语言怎么设置设置表格行高?

html语言怎么设置设置表格行高?小编真的喜欢你,闭上眼,以为小编能忘记,但流下的眼泪,却没有骗到自己 小编知道表格列宽是用来调整列宽,那么行高怎么设置啊?床前明月光,躺中央,人多轮流上,人少小编坐庄。 需要准备的材料分别有:电脑、浏览器、html编辑器。 首先,打开…

xlsx怎么设置行高列宽_excel中如何设置行高和列宽

在制作excel客户档案登记表的时候&#xff0c;单元格A1中的内容已经超出了1个单元格的范围怎么办&#xff1f;这个时候需要对excel单元格的列宽进行调整&#xff0c; 下面给大家分享一些方法&#xff0c;快来学习吧&#xff01; 1、将光标指向第1行与第2行之间的分隔处&#xf…

html设置行高像素,css怎么设置行高?

网页中的行高用来设置一行一行的文字之间的行间距&#xff0c;行高就是如同网页中有看不见的线&#xff0c;这些文字都写在这些线中间&#xff0c;我们可以设置这些线的之间的距离&#xff0c;从而来控制文字之间的间距。 下面我们来看一下css如何设置行高。 css可以使用line-h…

Excel列宽在哪里设置?Excel怎么设置行高和列宽

我们在制作表格的时候&#xff0c;会遇到表格太小&#xff0c;内容太多&#xff0c;不知道怎么把内容都放在一个方框里的情况&#xff0c;这个时候就需要把表格调整到适合的行高和列宽了&#xff0c;那么&#xff0c;Excel怎么设置行高和列宽&#xff1f; 下面给大家总结了4种…

Excel怎样设置行高和列宽

https://jingyan.baidu.com/article/b2c186c814b7b8c46ff6ff63.html 本经验教你使用Excel设置行高和列宽。 工具/原料 Excel、行高、列宽 方法/步骤 打开电脑桌面上的Excel快捷方式&#xff0c;建立一个空白的EXcel文档。 选定要设置行高和列宽的单元格&#xff0c;这一步…

测量学4_距离测量

测量学 lesson 4&#xff1a; 距离测量是确定地面点位时的基本测量工作之一。距离测量的方法有钢尺量距、视距测量和电磁波测距等。 距离测量 钢尺量距&#xff1a; 利用卷钢尺直接沿地面丈量距离。&#xff08;受地形影响较大&#xff0c;仅用于平坦地区的近距离测量&…

机器学习中的数学——距离定义(九):测地距离(Geodesic Distance)

分类目录&#xff1a;《机器学习中的数学》总目录 相关文章&#xff1a; 距离定义&#xff1a;基础知识 距离定义&#xff08;一&#xff09;&#xff1a;欧几里得距离&#xff08;Euclidean Distance&#xff09; 距离定义&#xff08;二&#xff09;&#xff1a;曼哈顿距离…

腾讯地图计算两点间距离

上一篇没来得及说&#xff0c;之所以把百度地图换成腾讯地图&#xff0c;是因为在IOS中&#xff0c;小程序不能正确显示&#xff0c;具体出错如下图&#xff08;我真是费老大劲找出来的&#xff09;&#xff0c;网上百度了好多&#xff0c;也有出现类似情况的&#xff0c;心痛&…

高德地图计算两坐标之间距离

Java实现Javascript实现MySQL实现 最近在做与地图相关的应用&#xff0c;使用了高德地图&#xff0c;研究了下高德地图计算两坐标距离的方法&#xff0c;官网上提供的开发包中有相关的方法&#xff0c;但是我的产品中比较特殊&#xff0c;无法直接使用提供的方法&#xff0c;所…

google地图测距原码

http://hi.baidu.com/shirdrn/blog/item/a7204afc716641fbfc037f85.html Google Maps自带实例多点测距尺实现的功能就是可以根据用户标出的任意多点&#xff0c;从而返回计算得到的各个点之间的距离。也就是说&#xff0c;计算出了一条折线的长度——是在地理上的实际距离。 实…

ArcGIS API For Javascript 4.15 绘制地图:在地图上测距离、测面积和在不同图层上搜索

1、HTML 页面 ## index.html<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>第七讲-小部件</tit…