[vim]vim中复制粘贴

强化学习经典算法笔记(九):LSTM加持的PolicyGradient算法 强化学习经典算法笔记(九):LSTM加持的PolicyGradient算法 在上文《强化学习经典算法笔记(八):LSTM加持的A2C算法解决POMDP问题》的基础上,实现了LSTM+MLP的Policy Gradient算法。 实现过程如下: import argparse, math, os, sys import numpy as np import gym from gym import wrappers import matplotlib.pyplot as plt import torch fr 阅读详情

vim中复制粘贴

yy 复制游标所在行整行。或大写一个 Y。

2yy 复制两行,y2y 也可以。

y^ 复制至行首,或 y0。不含光标所在处字符。

y$ 复制至行尾。含光标所在处字符。

yw 复制一个 word。

y2w 复制两个字。

yG 复制至档尾。

y1G 复制至档首。

p 小写 p 代表贴至光标后(下)。

P 大写 P 代表贴至光标前(上)。整行的复制,按 p 或 P 时是插入式的贴在下(上)一行。非整行的复制则是贴在游标所在处之后(前)。

.  命令:重复前次的编辑动作。例如:您按了 yy,然后按 p 就会复制、贴上一整行,如果要重复这个动作的话,就可以按 . ,也可以把光标移到其它地方后再按。其它 dd,dw,r,cw 等编辑指令都可以这样来重复。

保姆级教程:用Ubuntu 22.04搭建RustDesk中继服务器(含Cloudflare避坑指南) 本教程详细指导如何在Ubuntu 22.04上搭建RustDesk中继服务器,解决跨国远程协作的延迟问题。涵盖环境配置、Rust编译优化、服务部署及Cloudflare代理设置等关键步骤,帮助用户实现高性能的私有中继服务。 阅读详情

相关推荐

ENVI-met新手必看:从零开始创建城市微气候模型(附详细步骤+底图制作技巧)

本文为ENVI-met新手提供从零开始创建城市微气候模型的详细指南,包括环境准备、参数配置、底图制作技巧和三维模型构建步骤。特别针对常见问题提供解决方案,帮助初学者快速掌握城市微气候模拟技术,提升建模效率。

weixin_29269441的博客 407

Vim普通模式基础操作(复制、粘贴、删除、光标移动...)

yy 复制光标所在行y3y 从光标所在行开始,向下复制3行3yy 从光标所在行开始,向下复制3行y$ 从从光标所在处开始复制,到当前行末尾($:Shift + 4)y^ 从当前行开头进行复制,到光标处,不包含光标处内容(^:Shift + 6)yw 复制一个单词(从从光标位置开始到单词结束,单词后是空格也会复制空格)x 剪切光标处字符shift+x(X) 剪切光标位置的前一个字符。

LoveForNingJin的博客 1871

从Gcode命令看3D打印机的‘大脑’:Marlin/Klipper固件是如何执行你的指令的?

本文深入解析3D打印机固件Marlin和Klipper如何执行Gcode指令,从语法解析到运动控制算法,再到温度管理,详细揭示了从指令到物理动作的转化过程。通过对比两大固件的设计哲学和性能优化技巧,帮助用户更好地理解和调优3D打印机的核心控制系统。

weixin_26763955的博客 382

vim快捷键之复制(yy)+粘贴(p)+删除(dd)+撤销(u)+恢复(ctrl + r)大法

vim快捷键 复制yy 粘贴p 删除dd 撤销u 恢复ctrl + r

想练武,就得下功夫 5151

YOLOv8全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 518

uniapp [安卓苹果App端] - 实现获取请求手机位置权限+开启定位获取经纬度/省市区地址等,检测权限手机定位是否开启并引导用户同意授权,uniApp app端调用本机开启本机定位权限及IP属地

uni-app,手机定位权限,安卓Android,苹果ios,uniapp获取本机位置权限,uni-app获取用户定位数据,uniapp APP获取用户IP属地定位,判断权限,权限被拒绝了怎么办,苹果ios系统无法开启定位,获取定位权限报错,uniapp定位获取省市区,UNI-APP如何开启手机定位功能并获取经纬度,不依赖地图第三方插件组件,打包上架后如何获取,真机运行无法获取定位,安卓和ios权限获取,判断权限检查,正式打包,详细教程,根据获取当前经纬度,再根据经纬度去定位具体省市区,自定义基座打包能成功

🏆 前端领域优质创作者 1万+

vim常用快捷键

在vim中,%表示文件的全部;^表示行的开头,正常情况不显示;[Ctrl]+v进入块选择模式,选中要删除的行首注释符号,选中后按d。我们进入到vim中,很多操作和我们在Window系统的使用都不一样。进入块选择模式,然后选中你要添加的注释区域,按。(大写)后进入行首插入模式,输入注释符。

marvelss的博客 1334

华为OD机考双机位C卷 - 相对开音节 (Java & Python & JS & GO & C++ & C)

华为OD机考双机位C卷 - 相对开音节 , 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 744

vim编辑器相关操作

vim编译器相关操作

雪绒~ 5136

MATLAB与ROS联合仿真——ROS环境搭建及相关准备工作(上)

本篇文章主要介绍在安装完ROS后,在进行MATLAB与ROS联合仿真之前,需要进行的一些环境搭建以及准备工作,主要分为 创建ROS工作空间及功能包、必备功能包安装、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷工具安装(选做) 六部分。    本部分内容共分为上下两篇,上篇包括创建ROS工作空间及功能包和必备功能包安装这两部分,下篇包括、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷工

慕羽★的博客 3362

STM32实战开发(65):STM32摄像头图像采集开发教程

我们将会详细介绍如何使用STM32进行摄像头控制、图像数据采集以及如何将采集到的图像数据传输到其他设备进行处理。通过这篇博客,您将能够掌握STM32与摄像头模块的图像采集技术,应用于各种图像处理场景。为了确保STM32能够正确接收图像数据,我们需要配置STM32的GPIO引脚,并通过外部中断捕获这些信号。为了实现更高效的图像采集,可以通过DMA进行数据传输,将图像数据直接从GPIO引脚存储到内存中。通过DMA传输,我们可以将采集到的图像数据直接存储在内存中的一个缓冲区,然后进行后续的图像处理。

2201_76125393的博客 2540

在Vim中复制整行

如何以类似于IntelliJ IDEA / Resharper中的Ctrl + D或Eclipse中的Ctrl + Alt + ↑ / ↓的方式在Vim中复制整行?

asdfgh0077的博客 1570

【异常】 OpenClaw 超长入参报错排查与解决方案 [错误]: 400 <400> InternalError.Algo.InvalidParameter: Range of input leng

摘要: OpenClaw服务调用出现400 InvalidParameter报错,核心原因为输入内容长度超出1-129024字符限制。解决方案包括:1)紧急精简冗余入参;2)标准分块处理长文本;3)客户端增加预校验模块;4)长期可申请调整服务规格。该错误属于客户端参数校验异常,通过合理控制输入长度或分批次处理即可解决,重点需保证语义完整性。建议优先采用自动化预校验机制,从源头预防问题发生。(149字)

奶爸的编程之路,也就一周冷个三天 1989

linux ubuntu vim复制粘贴,关于vim的复制粘贴

今天被vim的复制粘贴弄得很烦,它不像windows那样,每次复制会把以前的内容覆盖。所以有时粘贴出来的东西并不是你想要的。在不同终端中,用vim打开的两个文件之间的复制粘贴1. 用同一个终端,直接使用这个命令:vim file1 file2这样就可以直接用y和p复制粘贴了。但是这样比较麻烦,需要在两个文件之间切换。2. 之所以不能直接用y和p复制粘贴。是因为每个终端中的vim复制的内容存储在不同...

weixin_39839410的博客 3478

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

vim 复制粘贴

VIM编辑器 1.复制和粘贴整行 我们都知道复制的快捷键是“nyy”,粘贴的快捷键是“p”。 Tips 1.“yy” 是复制光标所在行,“nyy”是复制包括光标所在行以及向下的“n-1”行**,一共n行。 2. “p”是将已经复制的数据,粘贴在光标所在行的下一行。“P”为粘贴在光标所在行的上一行。 2.粘贴和复制一个单词 当我们想粘贴一行数据中的某些单词时有一些快捷键 如下: yw 复制一个单词 (包括单词后面的空白字符) 4yl 复制当前光标下的字符、以及后面三个字符,总共四个字符 4yh 复制光标前面

记录和分享学习和工作过程中的个人总结 5万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Vim】关于vim的复制粘贴

ubuntu14.04 参考了很多文章 http://blog.sina.com.cn/s/blog_76550fd701019rol.html http://blog.youkuaiyun.com/very_loong/article/details/6907607 vim中写的代码,不能粘贴出去...查了很多资料,在学长的指导下终于可以了...记录一下.... 网上说的在.v

ACer-TomatoFish 716

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VIM系统复制粘贴

1 需求 系统复制粘贴主要是满足下面两个需求。 在多个对象之间复制粘贴 vim窗口与vim窗口之间 外部界面与vim窗口之间 不变复制粘贴。从外部界面复制粘贴到vim窗口时,文本不发生任何变化。 2 vim寄存器 2.1 寄存器介绍 不得不介绍以下vim寄存器,它是复制粘贴的中间媒介。 在vim中通过以下命令能查看所有寄存器: :reg vim包含以下寄存器: ...

353

无法正常在VIM中使用复制粘贴

在使用vim命令时,即使使用I命令切换到“插入模式”时,也不能使用复制或者粘贴命令。

qq_39287048的博客 5093

Linux的各种复制粘贴 - VIM、tmux、和终端之间的复制粘贴

Linux的各种复制粘贴 - VIM、tmux、和终端之间的复制粘贴

ittuann的博客 2768

vim在两个不同文件中复制粘贴

+为寄存器,n为你想要复制的行数,例如,复制当前以下11行内容,则只需按”+11yy就可以了。如果是在同一个VIM进程下操作多个文件,比如使用插件或者分割窗口,可以使用yy和p直接解决。在vim中按"+nyy将内容复制到粘贴板,然后使用Ctrl+V将其粘贴到其他文档中。但如果是多个不同的VIM进程分别打开文件,上面的方案就不好使了。在一个vim进程中,进入一般模式后,按"+nyy完成复制。在另一个vim进程中,进入一般模式,在要粘贴的位置按"+p。还有vim与非VIM之间的复制粘贴,同样如此。

void的博客 4428

关于vim的复制粘贴

今天被vim的复制粘贴弄得很烦,它不像windows那样,每次复制会把以前的内容覆盖。所以有时粘贴出来的东西并不是你想要的。 在不同终端中,用vim打开的两个文件之间的复制粘贴 1. 用同一个终端,直接使用这个命令: vim file1 file2 这样就可以直接用y和p复制粘贴了。 但是这样比较麻烦,需要在两个文件之间切换。 2. 之所以不能直接用

1682

vim支持鼠标复制粘贴

首先以root权限打开vim的配置文件 vimrc #进入目录 cd /etc/vim #打开文件 sudo vim vimrc 在文档末尾加入如下代码: if has( 'mouse' ) set mouse-=a endif 保存退出,再次打开文件,就可以实现复制粘贴功能。 ...

FreeSpider 1万+

Debian11为 vim 启用鼠标复制粘贴

最近发现在 Debian11系统下使用 apt 安装的 vim 是没办法正常使用鼠标左右键来复制粘贴的。 具体表现为:在使用 vim 编辑文件时按下鼠标右键后会进入如下图所示的“可视化(VISUAL)模式”,而不是正常的“弹出鼠标右键菜单”。 解决方案 经过查找资料后发现原来这是因为在 Debian11下 vim8.0 的默认配置中有一项set mouse=a开启了所有模式的 mouse 支持导致的( vim 的鼠标模式是个很神奇的东西,有兴趣的可以去了解一下,这里主要解决复制粘贴问题,不...

Note 5262

熟练进行vim复制粘贴

vim下的复制粘贴  (2012-08-18 22:16:09) 转载▼ 标签:  杂谈 分类: Linux 命令  vim中无法使用ctrl+c ctrl+v进行复制粘贴,用起来很不习惯 下面是vim复制粘贴的基本命令: yy复制游标所在行整行。或大写一个Y。 2yy或y2y复制两行。 ㄟ ,请举一反三好不好! :-)

一地鸡毛 2111

在LINUX终端和vim之间复制粘贴,在Linux终端和Vim下复制粘贴

在GUI界面下,我们可以很自由的复制粘贴。但是在字符界面下,我们不得不用鼠标选定,然后单击右健,选择复制,再到别处去Ctrl-v。并且对于 那些用没有配置过的VIM来说,VIM的粘贴板和X Window的粘贴板还不共享。这在码字的过程中,感觉非常不流畅。下面,我们就尝试解决这个问题。首先我们得让VIM和X Window共享一个粘贴板,这样我们就可以像在GUI界面下一样去复制粘贴了。我们可以在自己的...

weixin_42166918的博客 892

vim复制粘贴

对于大多数在Ubuntu下使用vim作为常用编辑器的同学来讲,他们遇到的第一个比较大的麻烦来自于vim与外部应用的复制粘贴。 当然,愿意选择ubuntu以及vim的同学肯定是google好手。不幸的是,各大论坛告诉你,你可以在命令模式下使用类似"*p或者"+p的命令将已经复制或剪切到系统剪切板的外部内容粘贴进来,也可以使用类似"*y或者"+y的命令将vim中的内容复制到系统剪切板中。很多同学

kipochen的专栏 641
上一篇: Python的编码问题
下一篇: openSUSE 12.3软件源
binhawkboy
博客等级 码龄14年 1粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值